diff --git a/repair_challenge/carmignac repair.py b/repair_challenge/carmignac repair.py
new file mode 100644
index 0000000..f8dd91c
--- /dev/null
+++ b/repair_challenge/carmignac repair.py
@@ -0,0 +1,1037 @@
+"""
+Carmignac Data Challenge — Pipeline Results Analysis
+=====================================================
+Analyses the CSV outputs produced by carmignac_repair.py:
+ - carmignac_scores.csv (post-surgery score history)
+ - carmignac_mapping.csv (reg_id mapping history)
+ - carmignac_surgery_log.csv (surgery operations)
+
+Produces a self-contained HTML report with interactive charts.
+
+Usage:
+ python carmignac_analysis.py
+ python carmignac_analysis.py --scores path/to/scores.csv \
+ --mapping path/to/mapping.csv \
+ --surgery path/to/surgery_log.csv \
+ --out report.html
+"""
+
+import argparse
+import json
+import os
+import sys
+import numpy as np
+import pandas as pd
+
+# ─────────────────────────────────────────────────────────────
+# 1. LOAD & VALIDATE
+# ─────────────────────────────────────────────────────────────
+
+def load_outputs(scores_path, mapping_path, surgery_path):
+ scores = pd.read_csv(scores_path, parse_dates=["date"])
+ mapping = pd.read_csv(mapping_path, parse_dates=["date"])
+ surgery = pd.read_csv(surgery_path, parse_dates=["date"])
+
+ # Normalise dtypes
+ scores["reg_id"] = scores["reg_id"].astype(str)
+ mapping["reg_orig"] = mapping["reg_orig"].astype(str)
+ mapping["reg_used"] = mapping["reg_used"].astype(str)
+ mapping["changed"] = mapping["changed"].astype(bool)
+ surgery["reg_orig"] = surgery["reg_orig"].astype(str)
+ surgery["reg_from"] = surgery["reg_from"].astype(str)
+ surgery["reg_to"] = surgery["reg_to"].astype(str)
+
+ return scores, mapping, surgery
+
+
+# ─────────────────────────────────────────────────────────────
+# 2. COMPUTE ANALYTICS
+# ─────────────────────────────────────────────────────────────
+
+def compute_analytics(scores, mapping, surgery):
+ dates = sorted(scores["date"].unique())
+
+ # ── 2.1 Sum of scores per date (post-surgery) ──────────────
+ sum_post = (scores.groupby("date")["score"]
+ .sum()
+ .reindex(dates)
+ .rename("sum_post"))
+
+ # ── 2.2 Reconstruct pre-surgery (counterfactual) ───────────
+ # Without surgery, every reg_id that had a hard break would score 0
+ # from that date backwards. We propagate the surgery "gain" as a
+ # cumulative deficit going back in time.
+ gain_by_date = surgery.groupby("date")["gain_vs_no_surgery"].sum()
+ # cumulative deficit = sum of gains for all surgeries at or after date t
+ cumulative_deficit = pd.Series(0.0, index=dates)
+ for d in dates:
+ cumulative_deficit[d] = gain_by_date[gain_by_date.index >= d].sum()
+ sum_pre = (sum_post - cumulative_deficit).clip(lower=0).rename("sum_pre")
+
+ timeline = pd.DataFrame({"sum_post": sum_post, "sum_pre": sum_pre})
+ timeline.index = pd.to_datetime(timeline.index)
+ timeline["recovery_pct"] = np.where(
+ sum_pre < sum_post,
+ (sum_post - sum_pre) / sum_post.clip(lower=1e-9) * 100,
+ 0.0,
+ )
+
+ # ── 2.3 Per-date surgery stats ─────────────────────────────
+ surgery_stats = (
+ surgery.groupby("date")
+ .agg(
+ n_surgeries = ("reg_orig", "count"),
+ total_gain = ("gain_vs_no_surgery", "sum"),
+ avg_gain = ("gain_vs_no_surgery", "mean"),
+ avg_jaccard = ("jaccard_composite", "mean"),
+ avg_score_before = ("score_before", "mean"),
+ avg_score_after = ("score_after", "mean"),
+ )
+ .reindex(dates, fill_value=0)
+ )
+
+ # ── 2.4 Score distribution over time ───────────────────────
+ # Wide format: rows=dates, cols=reg_ids
+ pivot = scores.pivot_table(index="date", columns="reg_id",
+ values="score", aggfunc="last")
+ pivot = pivot.reindex(dates)
+ pivot.index = pd.to_datetime(pivot.index)
+
+ # ── 2.5 Mapping churn ──────────────────────────────────────
+ # For each date, how many reg_ids are remapped (not using their original code)?
+ churn = (mapping.groupby("date")["changed"]
+ .sum()
+ .reindex(dates, fill_value=0)
+ .rename("n_remapped"))
+
+ # ── 2.6 Score entropy (distribution spread) ────────────────
+ def entropy(row):
+ p = row.dropna()
+ p = p[p > 0]
+ if len(p) == 0:
+ return np.nan
+ p = p / p.sum()
+ return -(p * np.log(p)).sum()
+
+ timeline["entropy"] = pivot.apply(entropy, axis=1).values
+
+ # ── 2.7 Individual score trajectories ──────────────────────
+ # Identify which reg_ids were ever remapped
+ ever_remapped = set(mapping.loc[mapping["changed"], "reg_orig"].unique())
+
+ # ── 2.8 Surgery detail table ───────────────────────────────
+ surgery_detail = surgery.copy()
+ surgery_detail["gain_pct_of_score"] = (
+ surgery_detail["gain_vs_no_surgery"]
+ / surgery_detail["score_before"].clip(lower=1e-9) * 100
+ ).round(2)
+
+ return {
+ "timeline": timeline,
+ "surgery_stats": surgery_stats,
+ "pivot": pivot,
+ "churn": churn,
+ "ever_remapped": ever_remapped,
+ "surgery_detail": surgery_detail,
+ "dates": [d.strftime("%Y-%m-%d") for d in dates],
+ }
+
+
+# ─────────────────────────────────────────────────────────────
+# 3. PRINT CONSOLE SUMMARY
+# ─────────────────────────────────────────────────────────────
+
+def print_summary(analytics, surgery):
+ tl = analytics["timeline"]
+ ss = analytics["surgery_stats"]
+
+ print("\n" + "=" * 65)
+ print(" CARMIGNAC PIPELINE — RESULTS SUMMARY")
+ print("=" * 65)
+
+ print(f"\n Date range : {tl.index.min().date()} → {tl.index.max().date()}")
+ print(f" Total months : {len(tl)}")
+ print(f" Reg IDs : {analytics['pivot'].shape[1]}")
+
+ print(f"\n ── Score (Σ) ──────────────────────────────────────────")
+ print(f" At t_ref (latest) : {tl['sum_post'].iloc[-1]:.6f}")
+ print(f" At t_min (earliest): {tl['sum_post'].iloc[0]:.6f}")
+ print(f" Min (post-surgery) : {tl['sum_post'].min():.6f} "
+ f"({tl['sum_post'].idxmin().date()})")
+ print(f" Min (pre-surgery) : {tl['sum_pre'].min():.6f} "
+ f"({tl['sum_pre'].idxmin().date()})")
+ print(f" Max recovery (pct) : {tl['recovery_pct'].max():.2f}%")
+
+ print(f"\n ── Surgeries ─────────────────────────────────────────")
+ if len(surgery) == 0:
+ print(" No surgeries performed.")
+ else:
+ print(f" Total operations : {len(surgery)}")
+ print(f" Total score gained : {surgery['gain_vs_no_surgery'].sum():.6f}")
+ print(f" Avg Jaccard : {surgery['jaccard_composite'].mean():.4f}")
+ print(f" Avg gain / surgery : {surgery['gain_vs_no_surgery'].mean():.6f}")
+ print()
+ print(f" {'Date':12s} {'Reg orig':12s} {'From':15s} {'To':15s} "
+ f"{'Jaccard':>8s} {'Gain':>10s}")
+ print(" " + "-" * 78)
+ for _, row in surgery.sort_values("date").iterrows():
+ print(f" {str(row['date'].date()):12s} {row['reg_orig']:12s} "
+ f"{row['reg_from']:15s} {row['reg_to']:15s} "
+ f"{row['jaccard_composite']:8.4f} {row['gain_vs_no_surgery']:10.6f}")
+
+ print(f"\n ── Mapping churn ─────────────────────────────────────")
+ ch = analytics["churn"]
+ print(f" Max remapped at one date : {int(ch.max())} ({ch.idxmax().date() if ch.max()>0 else 'N/A'})")
+ print(f" Reg IDs ever remapped : {len(analytics['ever_remapped'])}")
+
+ print(f"\n ── Score entropy (distribution spread) ───────────────")
+ ent = analytics["timeline"]["entropy"]
+ print(f" Mean entropy : {ent.mean():.4f}")
+ print(f" Std entropy : {ent.std():.4f}")
+ print()
+
+
+# ─────────────────────────────────────────────────────────────
+# 4. BUILD HTML REPORT
+# ─────────────────────────────────────────────────────────────
+
+def build_html(analytics, surgery, scores, mapping):
+ tl = analytics["timeline"]
+ ss = analytics["surgery_stats"]
+ piv = analytics["pivot"]
+ ch = analytics["churn"]
+ dates_str = analytics["dates"]
+
+ # ── helpers to serialise for JS ─────────────────────────────
+ def jf(arr, decimals=6):
+ return json.dumps([round(float(v), decimals) if not np.isnan(v) else None
+ for v in arr])
+
+ def js(arr):
+ return json.dumps(list(arr))
+
+ # ── colour palette ───────────────────────────────────────────
+ REG_COLORS = [
+ "#2563eb","#16a34a","#dc2626","#d97706","#7c3aed",
+ "#0891b2","#db2777","#65a30d","#ea580c","#6366f1",
+ "#059669","#b45309","#9333ea","#0284c7","#e11d48",
+ ]
+
+ # ── 4.1 Surgery sparkline data ──────────────────────────────
+ surg_dates = [d.strftime("%Y-%m-%d") for d in ss.index]
+ n_surg = jf(ss["n_surgeries"].values, 0)
+ total_gain = jf(ss["total_gain"].values)
+ avg_gain = jf(ss["avg_gain"].values)
+ avg_jaccard = jf(ss["avg_jaccard"].values)
+
+ # ── 4.2 Individual trajectories ────────────────────────────
+ reg_ids = list(piv.columns)
+ traj_datasets = []
+ for idx, rid in enumerate(reg_ids):
+ col = analytics["ever_remapped"]
+ dashed = rid in col
+ traj_datasets.append({
+ "label": rid,
+ "data": [round(float(v), 6) if not np.isnan(v) else None
+ for v in piv[rid].values],
+ "borderColor": REG_COLORS[idx % len(REG_COLORS)],
+ "backgroundColor": REG_COLORS[idx % len(REG_COLORS)] + "22",
+ "borderWidth": 2 if not dashed else 2,
+ "borderDash": [] if not dashed else [6, 3],
+ "pointRadius": 0,
+ "tension": 0.3,
+ "fill": False,
+ })
+
+ traj_json = json.dumps(traj_datasets)
+
+ # ── 4.3 Surgery detail table rows ──────────────────────────
+ sd = analytics["surgery_detail"].sort_values("date")
+ surg_rows_html = ""
+ if len(sd) == 0:
+ surg_rows_html = "
| No surgeries performed |
"
+ else:
+ for _, r in sd.iterrows():
+ gain_class = "gain-high" if r["gain_vs_no_surgery"] > 0.05 else "gain-low"
+ surg_rows_html += f"""
+
+ | {r['date'].date()} |
+ {r['reg_orig']} |
+ {r['reg_from']} |
+ → |
+ {r['reg_to']} |
+ {r['jaccard_composite']:.4f} |
+ +{r['gain_vs_no_surgery']:.6f} |
+ {r['gain_pct_of_score']:.1f}% |
+
"""
+
+ # ── 4.4 Top accounts table ──────────────────────────────────
+ last_date = piv.index.max()
+ top_accounts = piv.loc[last_date].dropna().sort_values(ascending=False)
+ top_rows_html = ""
+ for rank, (rid, sc) in enumerate(top_accounts.items(), 1):
+ remapped = "✓" if rid in analytics["ever_remapped"] else ""
+ bar_w = int(sc / top_accounts.max() * 100)
+ color = REG_COLORS[(rank - 1) % len(REG_COLORS)]
+ top_rows_html += f"""
+
+ | #{rank} |
+ {rid} |
+ {sc:.6f} |
+
+
+ |
+ {remapped} |
+
"""
+
+ # ─────────────────────────────────────────────────────────────
+ # HTML TEMPLATE
+ # ─────────────────────────────────────────────────────────────
+ html = f"""
+
+
+
+
+Carmignac Pipeline — Analysis Report
+
+
+
+
+
+
+
+
+
+
+
+ Σ score at t_ref
+ {tl['sum_post'].iloc[-1]:.4f}
+ post-surgery
+
+
+ Σ score at t_min
+ {tl['sum_post'].iloc[0]:.4f}
+ post-surgery
+
+
+ Max recovery
+ {tl['recovery_pct'].max():.1f}%
+ score rescued by surgery
+
+
+ Total surgeries
+ {len(surgery)}
+ operations performed
+
+
+ Reg IDs universe
+ {piv.shape[1]}
+ at reference date
+
+
+ Ever remapped
+ {len(analytics['ever_remapped'])}
+ reg IDs w/ code change
+
+
+
+
+
+
+
01 · Score Integrity Over Time
+
+
+
+
+
+
+
+
02 · Individual Score Trajectories
+
+
+
+
03 · Surgery Operations
+
+
+
+
+
+
04 · Surgery Detail Log
+
+
+
+
+ {'
No surgeries were performed on this dataset.
' if len(surgery) == 0 else f"""
+
+
+
+ | Date |
+ Reg orig |
+ Code from |
+ |
+ Code to |
+ Jaccard |
+ Score gain |
+ % of score |
+
+
+ {surg_rows_html}
+
"""}
+
+
+
+
05 · Score Ranking at t_ref
+
+
+
+
+
+
+
+ | Rank |
+ Registrar ID |
+ Score (weight) |
+ Relative size |
+ Remapped |
+
+
+ {top_rows_html}
+
+
+
+
+
+
+
+
+
+
+
+"""
+
+ return html
+
+
+# ─────────────────────────────────────────────────────────────
+# 5. MAIN
+# ─────────────────────────────────────────────────────────────
+
+def main():
+ parser = argparse.ArgumentParser(description="Carmignac pipeline results analyser")
+ parser.add_argument("--scores", default="repair_results/carmignac_scores.csv")
+ parser.add_argument("--mapping", default="repair_results/carmignac_mapping.csv")
+ parser.add_argument("--surgery", default="repair_results/carmignac_surgery_log.csv")
+ parser.add_argument("--out", default="repair_results/carmignac_report.html")
+ args = parser.parse_args()
+
+ # Resolve paths relative to this script's directory if files not found
+ base = os.path.dirname(os.path.abspath(__file__))
+ def resolve(p):
+ if os.path.exists(p):
+ return p
+ alt = os.path.join(base, p)
+ if os.path.exists(alt):
+ return alt
+ sys.exit(f"[ERROR] File not found: {p}")
+
+ scores_path = resolve(args.scores)
+ mapping_path = resolve(args.mapping)
+ surgery_path = resolve(args.surgery)
+
+ print(f"[Load] scores : {scores_path}")
+ print(f"[Load] mapping : {mapping_path}")
+ print(f"[Load] surgery : {surgery_path}")
+
+ scores, mapping, surgery = load_outputs(scores_path, mapping_path, surgery_path)
+ analytics = compute_analytics(scores, mapping, surgery)
+
+ print_summary(analytics, surgery)
+
+ html = build_html(analytics, surgery, scores, mapping)
+
+ out_path = args.out
+ with open(out_path, "w", encoding="utf-8") as f:
+ f.write(html)
+ print(f"\n[Report] Written to → {out_path}")
+
+
+if __name__ == "__main__":
+ main()
diff --git a/repair_challenge/carmignac_analysis.py b/repair_challenge/carmignac_analysis.py
new file mode 100644
index 0000000..b9b9151
--- /dev/null
+++ b/repair_challenge/carmignac_analysis.py
@@ -0,0 +1,1351 @@
+"""
+Carmignac Data Challenge — Pipeline Results Analysis
+=====================================================
+Analyses the CSV outputs produced by carmignac_repair.py:
+ - carmignac_scores.csv (post-surgery score history)
+ - carmignac_mapping.csv (reg_id mapping history)
+ - carmignac_surgery_log.csv (surgery operations)
+
+Produces a self-contained HTML report with interactive charts.
+
+Usage:
+ python carmignac_analysis.py
+ python carmignac_analysis.py --scores path/to/scores.csv \
+ --mapping path/to/mapping.csv \
+ --surgery path/to/surgery_log.csv \
+ --out report.html
+"""
+
+import argparse
+import json
+import os
+import sys
+import numpy as np
+import pandas as pd
+
+# ─────────────────────────────────────────────────────────────
+# 1. LOAD & VALIDATE
+# ─────────────────────────────────────────────────────────────
+
+def load_outputs(scores_path, mapping_path, surgery_path):
+ scores = pd.read_csv(scores_path, parse_dates=["date"])
+ mapping = pd.read_csv(mapping_path, parse_dates=["date"])
+ surgery = pd.read_csv(surgery_path, parse_dates=["date"])
+
+ # Normalise dtypes
+ scores["reg_id"] = scores["reg_id"].astype(str)
+ mapping["reg_orig"] = mapping["reg_orig"].astype(str)
+ mapping["reg_used"] = mapping["reg_used"].astype(str)
+ mapping["changed"] = mapping["changed"].astype(bool)
+ surgery["reg_orig"] = surgery["reg_orig"].astype(str)
+ surgery["reg_from"] = surgery["reg_from"].astype(str)
+ surgery["reg_to"] = surgery["reg_to"].astype(str)
+
+ return scores, mapping, surgery
+
+
+# ─────────────────────────────────────────────────────────────
+# 2. COMPUTE ANALYTICS
+# ─────────────────────────────────────────────────────────────
+
+def compute_analytics(scores, mapping, surgery):
+ dates = sorted(scores["date"].unique())
+
+ # ── 2.1 Sum of scores per date (post-surgery) ──────────────
+ sum_post = (scores.groupby("date")["score"]
+ .sum()
+ .reindex(dates)
+ .rename("sum_post"))
+
+ # ── 2.2 Reconstruct pre-surgery (counterfactual) ───────────
+ # Without surgery, every reg_id that had a hard break would score 0
+ # from that date backwards. We propagate the surgery "gain" as a
+ # cumulative deficit going back in time.
+ gain_by_date = surgery.groupby("date")["gain_vs_no_surgery"].sum()
+ # cumulative deficit = sum of gains for all surgeries at or after date t
+ cumulative_deficit = pd.Series(0.0, index=dates)
+ for d in dates:
+ cumulative_deficit[d] = gain_by_date[gain_by_date.index >= d].sum()
+ sum_pre = (sum_post - cumulative_deficit).clip(lower=0).rename("sum_pre")
+
+ timeline = pd.DataFrame({"sum_post": sum_post, "sum_pre": sum_pre})
+ timeline.index = pd.to_datetime(timeline.index)
+ timeline["recovery_pct"] = np.where(
+ sum_pre < sum_post,
+ (sum_post - sum_pre) / sum_post.clip(lower=1e-9) * 100,
+ 0.0,
+ )
+
+ # ── 2.3 Per-date surgery stats ─────────────────────────────
+ surgery_stats = (
+ surgery.groupby("date")
+ .agg(
+ n_surgeries = ("reg_orig", "count"),
+ total_gain = ("gain_vs_no_surgery", "sum"),
+ avg_gain = ("gain_vs_no_surgery", "mean"),
+ avg_jaccard = ("jaccard_composite", "mean"),
+ avg_score_before = ("score_before", "mean"),
+ avg_score_after = ("score_after", "mean"),
+ )
+ .reindex(dates, fill_value=0)
+ )
+
+ # ── 2.4 Score distribution over time ───────────────────────
+ # Wide format: rows=dates, cols=reg_ids
+ pivot = scores.pivot_table(index="date", columns="reg_id",
+ values="score", aggfunc="last")
+ pivot = pivot.reindex(dates)
+ pivot.index = pd.to_datetime(pivot.index)
+
+ # ── 2.5 Mapping churn ──────────────────────────────────────
+ # For each date, how many reg_ids are remapped (not using their original code)?
+ churn = (mapping.groupby("date")["changed"]
+ .sum()
+ .reindex(dates, fill_value=0)
+ .rename("n_remapped"))
+
+ # ── 2.6 Score entropy (distribution spread) ────────────────
+ def entropy(row):
+ p = row.dropna()
+ p = p[p > 0]
+ if len(p) == 0:
+ return np.nan
+ p = p / p.sum()
+ return -(p * np.log(p)).sum()
+
+ timeline["entropy"] = pivot.apply(entropy, axis=1).values
+
+ # ── 2.7 Individual score trajectories ──────────────────────
+ # Identify which reg_ids were ever remapped
+ ever_remapped = set(mapping.loc[mapping["changed"], "reg_orig"].unique())
+
+ # ── 2.8 Surgery detail table ───────────────────────────────
+ surgery_detail = surgery.copy()
+ surgery_detail["gain_pct_of_score"] = (
+ surgery_detail["gain_vs_no_surgery"]
+ / surgery_detail["score_before"].clip(lower=1e-9) * 100
+ ).round(2)
+
+ return {
+ "timeline": timeline,
+ "surgery_stats": surgery_stats,
+ "pivot": pivot,
+ "churn": churn,
+ "ever_remapped": ever_remapped,
+ "surgery_detail": surgery_detail,
+ "dates": [d.strftime("%Y-%m-%d") for d in dates],
+ }
+
+
+# ─────────────────────────────────────────────────────────────
+# 3. PRINT CONSOLE SUMMARY
+# ─────────────────────────────────────────────────────────────
+
+def print_summary(analytics, surgery):
+ tl = analytics["timeline"]
+ ss = analytics["surgery_stats"]
+
+ print("\n" + "=" * 65)
+ print(" CARMIGNAC PIPELINE — RESULTS SUMMARY")
+ print("=" * 65)
+
+ print(f"\n Date range : {tl.index.min().date()} → {tl.index.max().date()}")
+ print(f" Total months : {len(tl)}")
+ print(f" Reg IDs : {analytics['pivot'].shape[1]}")
+
+ print(f"\n ── Score (Σ) ──────────────────────────────────────────")
+ print(f" At t_ref (latest) : {tl['sum_post'].iloc[-1]:.6f}")
+ print(f" At t_min (earliest): {tl['sum_post'].iloc[0]:.6f}")
+ print(f" Min (post-surgery) : {tl['sum_post'].min():.6f} "
+ f"({tl['sum_post'].idxmin().date()})")
+ print(f" Min (pre-surgery) : {tl['sum_pre'].min():.6f} "
+ f"({tl['sum_pre'].idxmin().date()})")
+ print(f" Max recovery (pct) : {tl['recovery_pct'].max():.2f}%")
+
+ print(f"\n ── Surgeries ─────────────────────────────────────────")
+ if len(surgery) == 0:
+ print(" No surgeries performed.")
+ else:
+ print(f" Total operations : {len(surgery)}")
+ print(f" Total score gained : {surgery['gain_vs_no_surgery'].sum():.6f}")
+ print(f" Avg Jaccard : {surgery['jaccard_composite'].mean():.4f}")
+ print(f" Avg gain / surgery : {surgery['gain_vs_no_surgery'].mean():.6f}")
+ print()
+ print(f" {'Date':12s} {'Reg orig':12s} {'From':15s} {'To':15s} "
+ f"{'Jaccard':>8s} {'Gain':>10s}")
+ print(" " + "-" * 78)
+ for _, row in surgery.sort_values("date").iterrows():
+ print(f" {str(row['date'].date()):12s} {row['reg_orig']:12s} "
+ f"{row['reg_from']:15s} {row['reg_to']:15s} "
+ f"{row['jaccard_composite']:8.4f} {row['gain_vs_no_surgery']:10.6f}")
+
+ print(f"\n ── Mapping churn ─────────────────────────────────────")
+ ch = analytics["churn"]
+ print(f" Max remapped at one date : {int(ch.max())} ({ch.idxmax().date() if ch.max()>0 else 'N/A'})")
+ print(f" Reg IDs ever remapped : {len(analytics['ever_remapped'])}")
+
+ print(f"\n ── Score entropy (distribution spread) ───────────────")
+ ent = analytics["timeline"]["entropy"]
+ print(f" Mean entropy : {ent.mean():.4f}")
+ print(f" Std entropy : {ent.std():.4f}")
+ print()
+
+
+# ─────────────────────────────────────────────────────────────
+# 4. BUILD HTML REPORT
+# ─────────────────────────────────────────────────────────────
+
+def build_html(analytics, surgery, scores, mapping):
+ tl = analytics["timeline"]
+ ss = analytics["surgery_stats"]
+ piv = analytics["pivot"]
+ ch = analytics["churn"]
+ dates_str = analytics["dates"]
+
+ # ── helpers to serialise for JS ─────────────────────────────
+ def jf(arr, decimals=6):
+ return json.dumps([round(float(v), decimals) if not np.isnan(v) else None
+ for v in arr])
+
+ def js(arr):
+ return json.dumps(list(arr))
+
+ # ── colour palette ───────────────────────────────────────────
+ REG_COLORS = [
+ "#2563eb","#16a34a","#dc2626","#d97706","#7c3aed",
+ "#0891b2","#db2777","#65a30d","#ea580c","#6366f1",
+ "#059669","#b45309","#9333ea","#0284c7","#e11d48",
+ ]
+
+ # ── 4.1 Surgery sparkline data ──────────────────────────────
+ surg_dates = [d.strftime("%Y-%m-%d") for d in ss.index]
+ n_surg = jf(ss["n_surgeries"].values, 0)
+ total_gain = jf(ss["total_gain"].values)
+ avg_gain = jf(ss["avg_gain"].values)
+ avg_jaccard = jf(ss["avg_jaccard"].values)
+
+ # ── 4.2 Individual trajectories ────────────────────────────
+ reg_ids = list(piv.columns)
+ traj_datasets = []
+ # Surgery lookup: reg_orig -> list of {date, from, to, composite}
+ surg_by_reg = {}
+ for _, row in surgery.iterrows():
+ surg_by_reg.setdefault(row["reg_orig"], []).append({
+ "date": row["date"].strftime("%Y-%m-%d"),
+ "reg_from": str(row["reg_from"]),
+ "reg_to": str(row["reg_to"]),
+ "composite": round(float(row["jaccard_composite"]), 4),
+ "gain": round(float(row["gain_vs_no_surgery"]), 6),
+ })
+
+ for idx, rid in enumerate(reg_ids):
+ remapped = rid in analytics["ever_remapped"]
+ traj_datasets.append({
+ "label": rid,
+ "data": [round(float(v), 6) if not np.isnan(v) else None
+ for v in piv[rid].values],
+ "borderColor": REG_COLORS[idx % len(REG_COLORS)],
+ "backgroundColor": REG_COLORS[idx % len(REG_COLORS)] + "22",
+ "borderWidth": 2,
+ "borderDash": [6, 3] if remapped else [],
+ "pointRadius": 0,
+ "tension": 0.3,
+ "fill": False,
+ "remapped": remapped,
+ "surgeries": surg_by_reg.get(rid, []),
+ })
+
+ traj_json = json.dumps(traj_datasets)
+
+ # ── 4.3 Surgery detail table rows ──────────────────────────
+ sd = analytics["surgery_detail"].sort_values("date")
+ surg_rows_html = ""
+ if len(sd) == 0:
+ surg_rows_html = "| No surgeries performed |
"
+ else:
+ for _, r in sd.iterrows():
+ gain_class = "gain-high" if r["gain_vs_no_surgery"] > 0.05 else "gain-low"
+ surg_rows_html += f"""
+
+ | {r['date'].date()} |
+ {r['reg_orig']} |
+ {r['reg_from']} |
+ → |
+ {r['reg_to']} |
+ {r['jaccard_composite']:.4f} |
+ +{r['gain_vs_no_surgery']:.6f} |
+ {r['gain_pct_of_score']:.1f}% |
+
"""
+
+ # ── 4.4 Top accounts table ──────────────────────────────────
+ last_date = piv.index.max()
+ top_accounts = piv.loc[last_date].dropna().sort_values(ascending=False)
+ top_rows_html = ""
+ for rank, (rid, sc) in enumerate(top_accounts.items(), 1):
+ remapped = "✓" if rid in analytics["ever_remapped"] else ""
+ bar_w = int(sc / top_accounts.max() * 100)
+ color = REG_COLORS[(rank - 1) % len(REG_COLORS)]
+ top_rows_html += f"""
+
+ | #{rank} |
+ {rid} |
+ {sc:.6f} |
+
+
+ |
+ {remapped} |
+
"""
+
+ # ─────────────────────────────────────────────────────────────
+ # HTML TEMPLATE
+ # ─────────────────────────────────────────────────────────────
+ html = f"""
+
+
+
+
+Carmignac Pipeline — Analysis Report
+
+
+
+
+
+
+
+
+
+
+
+ Σ score at t_ref
+ {tl['sum_post'].iloc[-1]:.4f}
+ post-surgery
+
+
+ Σ score at t_min
+ {tl['sum_post'].iloc[0]:.4f}
+ post-surgery
+
+
+ Max recovery
+ {tl['recovery_pct'].max():.1f}%
+ score rescued by surgery
+
+
+ Total surgeries
+ {len(surgery)}
+ operations performed
+
+
+ Reg IDs universe
+ {piv.shape[1]}
+ at reference date
+
+
+ Ever remapped
+ {len(analytics['ever_remapped'])}
+ reg IDs w/ code change
+
+
+
+
+
+
+
01 · Score Integrity Over Time
+
+
+
+
+
+
+
+
02 · Individual Score Trajectories
+
+
+
+
+
+
+
+
+
+
+
+
+
All accounts — overview
+
+
+
+
+
+
03 · Surgery Operations
+
+
+
+
+
+
04 · Surgery Detail Log
+
+
+
+
+ {'
No surgeries were performed on this dataset.
' if len(surgery) == 0 else f"""
+
+
+
+ | Date |
+ Reg orig |
+ Code from |
+ |
+ Code to |
+ Jaccard |
+ Score gain |
+ % of score |
+
+
+ {surg_rows_html}
+
"""}
+
+
+
+
05 · Score Ranking at t_ref
+
+
+
+
+
+
+
+ | Rank |
+ Registrar ID |
+ Score (weight) |
+ Relative size |
+ Remapped |
+
+
+ {top_rows_html}
+
+
+
+
+
+
+
+
+
+
+
+"""
+
+ return html
+
+
+# ─────────────────────────────────────────────────────────────
+# 5. MAIN
+# ─────────────────────────────────────────────────────────────
+
+def main():
+ parser = argparse.ArgumentParser(description="Carmignac pipeline results analyser")
+ parser.add_argument("--scores", default="repair_results/carmignac_scores.csv")
+ parser.add_argument("--mapping", default="repair_results/carmignac_mapping.csv")
+ parser.add_argument("--surgery", default="repair_results/carmignac_surgery_log.csv")
+ parser.add_argument("--out", default="repair_results/carmignac_report.html")
+ args = parser.parse_args()
+
+ # Resolve paths relative to this script's directory if files not found
+ base = os.path.dirname(os.path.abspath(__file__))
+ def resolve(p):
+ if os.path.exists(p):
+ return p
+ alt = os.path.join(base, p)
+ if os.path.exists(alt):
+ return alt
+ sys.exit(f"[ERROR] File not found: {p}")
+
+ scores_path = resolve(args.scores)
+ mapping_path = resolve(args.mapping)
+ surgery_path = resolve(args.surgery)
+
+ print(f"[Load] scores : {scores_path}")
+ print(f"[Load] mapping : {mapping_path}")
+ print(f"[Load] surgery : {surgery_path}")
+
+ scores, mapping, surgery = load_outputs(scores_path, mapping_path, surgery_path)
+ analytics = compute_analytics(scores, mapping, surgery)
+
+ print_summary(analytics, surgery)
+
+ html = build_html(analytics, surgery, scores, mapping)
+
+ out_path = args.out
+ with open(out_path, "w", encoding="utf-8") as f:
+ f.write(html)
+ print(f"\n[Report] Written to → {out_path}")
+
+
+if __name__ == "__main__":
+ main()
diff --git a/repair_challenge/carmignac_repair.py b/repair_challenge/carmignac_repair.py
deleted file mode 100644
index 873ef47..0000000
--- a/repair_challenge/carmignac_repair.py
+++ /dev/null
@@ -1,682 +0,0 @@
-"""
-Carmignac Data Challenge — Registrar ID Repair Pipeline
-=========================================================
-Étape 1 : Filtrage & univers de référence à t=31/10/2025
-Étape 2 : Score de cohérence temporelle (propagation vers le passé)
-Étape 3 : Chirurgie de code (matching 1-to-1)
-"""
-
-import pandas as pd
-import numpy as np
-from collections import defaultdict
-import os
-import s3fs
-
-# ─────────────────────────────────────────────
-# PARAMÈTRES
-# ─────────────────────────────────────────────
-ALPHA = 0.01 # tolérance réconciliation : 1% du stock à t
-MIN_AUM_EUR = 5e6 # seuil filtrage étape 1
-MIN_JACCARD = 0.3 # seuil minimal similarité portefeuille pour chirurgie
-SCORE_DROP_THRESHOLD = 0.5 # si score chute de >50% → candidat chirurgie
-
-EXCLUDE_REGISTRAR = ["Off Distribution", "Private Clients"]
-
-# ─────────────────────────────────────────────
-# 1. CHARGEMENT
-# ─────────────────────────────────────────────
-def connect_s3fs():
- fs = s3fs.S3FileSystem(
- client_kwargs={'endpoint_url': 'https://'+'minio-simple.lab.groupe-genes.fr'},
- key = os.environ["AWS_ACCESS_KEY_ID"],
- secret = os.environ["AWS_SECRET_ACCESS_KEY"],
- token = os.environ["AWS_SESSION_TOKEN"])
- return fs
-
-def load_data(aum_path, flows_path):
- fs = connect_s3fs()
-
- with fs.open(aum_path, 'rb') as aum_raw:
- aum = pd.read_csv(aum_raw, sep=";")
-
- with fs.open(flows_path, 'rb') as flows_raw:
- flows = pd.read_csv(flows_raw, sep=";")
-
- aum['Centralisation Date'] = pd.to_datetime(aum['Centralisation Date'])
- flows['Centralisation Date'] = pd.to_datetime(flows['Centralisation Date'])
-
- aum = aum.rename(columns={
- 'Registrar Account - ID': 'reg_id',
- 'Product - Isin': 'isin',
- 'Centralisation Date': 'date',
- 'Quantity - AUM': 'qty_aum',
- 'Value - AUM €': 'val_eur',
- 'Registrar Account - Region': 'region',
- })
- flows = flows.rename(columns={
- 'Registrar Account - ID': 'reg_id',
- 'Product - Isin': 'isin',
- 'Centralisation Date': 'date',
- 'Quantity - NetFlows': 'qty_net',
- 'Value € - NetFlows': 'val_net_eur',
- })
-
- aum['reg_id'] = aum['reg_id'].astype(str)
- flows['reg_id'] = flows['reg_id'].astype(str)
-
- return aum, flows
-
-# ─────────────────────────────────────────────
-# 2. ÉTAPE 1 — Univers de référence à T_REF
-# ─────────────────────────────────────────────
-def build_reference_universe(aum, t_ref=None):
- """
- Construit l'univers de référence à t_ref (dernière date par défaut).
- Retourne :
- - aum_ref : AUM à t_ref pour chaque (reg_id, isin)
- - weights : poids normalisé par reg_id
- - universe : ensemble des reg_id retenus (>= MIN_AUM_EUR)
- """
- if t_ref is None:
- t_ref = aum['date'].max()
-
- print(f"\n[Étape 1] Date de référence : {t_ref.date()}")
-
- # Exclure Off Distribution / Private Clients (sur région ou nom)
- mask_excl = aum['reg_id'].isin(EXCLUDE_REGISTRAR)
- if 'region' in aum.columns:
- mask_excl |= aum['region'].isin(EXCLUDE_REGISTRAR)
- aum_clean = aum[~mask_excl].copy()
-
- # AUM à t_ref
- aum_ref = aum_clean[aum_clean['date'] == t_ref][['reg_id', 'isin', 'qty_aum', 'val_eur']].copy()
-
- # AUM total par reg_id à t_ref
- aum_by_reg = aum_ref.groupby('reg_id')['val_eur'].sum().rename('total_eur')
-
- # Filtrage >= MIN_AUM_EUR
- universe = set(aum_by_reg[aum_by_reg >= MIN_AUM_EUR].index)
-
- total_eur_universe = aum_by_reg[aum_by_reg.index.isin(universe)].sum()
- total_eur_all = aum_by_reg.sum()
- coverage = total_eur_universe / total_eur_all if total_eur_all > 0 else 0
-
- print(f" Registrar IDs à t_ref : {len(aum_by_reg)}")
- print(f" Dont >= {MIN_AUM_EUR/1e6:.0f}M€ : {len(universe)}")
- print(f" Couverture encours : {coverage:.1%}")
-
- # Poids initiaux (scores à t_ref)
- weights = (aum_by_reg[aum_by_reg.index.isin(universe)] / total_eur_universe).to_dict()
-
- return aum_ref, weights, universe, t_ref
-
-# ─────────────────────────────────────────────
-# 3. PANEL AUM MENSUEL (forward-fill)
-# ─────────────────────────────────────────────
-def build_monthly_panel(aum, universe, t_ref):
- """
- Construit un panel mensuel complet (forward-fill des quantités AUM)
- pour TOUS les reg_ids présents dans l'historique AUM — y compris les codes
- historiques hors univers de référence, nécessaires pour la chirurgie.
- """
- # Toutes les fin de mois entre la première date et t_ref
- date_min = aum['date'].min()
- all_months = pd.date_range(start=date_min, end=t_ref, freq='ME')
-
- # Pivot : (reg_id, isin) → série temporelle de qty_aum
- aum_sorted = aum.sort_values(['reg_id', 'isin', 'date'])
-
- # On ne garde que les lignes jusqu'à t_ref
- aum_sorted = aum_sorted[aum_sorted['date'] <= t_ref]
-
- # Multi-index pivot
- panel = aum_sorted.pivot_table(
- index='date', columns=['reg_id', 'isin'], values='qty_aum', aggfunc='last'
- )
-
- # Réindexer sur toutes les fins de mois
- panel = panel.reindex(all_months)
-
- # Forward-fill : si pas de mouvement, la quantité reste la même
- panel = panel.ffill()
-
- # Backward-fill initial pour les comptes qui démarrent après la première date
- # (on ne remonte pas avant leur première apparition → on garde NaN)
-
- print(f"\n[Panel mensuel] {len(all_months)} mois, {panel.shape[1]} (reg_id, isin) paires")
-
- return panel, all_months
-
-# ─────────────────────────────────────────────
-# 4. FLOWS AGRÉGÉS PAR MOIS
-# ─────────────────────────────────────────────
-def aggregate_flows_monthly(flows, all_months):
- """
- Agrège les flows infra-mensuels sur chaque fenêtre ]fin_mois(t-1), fin_mois(t)].
- Retourne un DataFrame indexé par (fin_mois, reg_id, isin).
- """
- flows_f = flows[flows['date'] <= all_months[-1]].copy()
-
- # Associer chaque transaction à la fin de mois correspondante
- # = la première fin de mois >= date de transaction
- flows_f['month_end'] = flows_f['date'].apply(
- lambda d: all_months[all_months >= d][0] if any(all_months >= d) else pd.NaT
- )
- flows_f = flows_f.dropna(subset=['month_end'])
-
- # Agrégation
- monthly_flows = flows_f.groupby(['month_end', 'reg_id', 'isin'])['qty_net'].sum()
- monthly_flows = monthly_flows.reset_index()
- monthly_flows.columns = ['date', 'reg_id', 'isin', 'qty_net_month']
-
- print(f"\n[Flows mensuels] {len(monthly_flows)} enregistrements (reg_id, isin, mois)")
-
- return monthly_flows
-
-# ─────────────────────────────────────────────
-# 5. ÉTAPE 2 — Score de cohérence temporelle
-# ─────────────────────────────────────────────
-def compute_reconciliation_error(qty_t_minus1, qty_t, net_flow, alpha=ALPHA):
- """
- Calcule l'erreur de réconciliation normalisée pour un (reg_id, isin, mois).
-
- Attendu : qty_t_minus1 + net_flow ≈ qty_t
- Erreur : |qty_t_minus1 + net_flow - qty_t| / max(|qty_t|, |qty_t_minus1|)
-
- Retourne :
- - err_ratio : erreur relative (0 = parfait)
- - is_break : True si err_ratio > alpha
- """
- denom = max(abs(qty_t), abs(qty_t_minus1), 1e-9)
- err = abs(qty_t_minus1 + net_flow - qty_t)
- err_ratio = err / denom
- return err_ratio, err_ratio > alpha
-
-def score_propagation(panel, monthly_flows, weights, universe, all_months):
- """
- Propage les scores de t_ref vers t=0 (passé).
-
- À chaque mois t (en remontant), pour chaque reg_id dans l'univers courant :
- - Calculer l'erreur de réconciliation pondérée par ISIN
- - Dégrader le score proportionnellement
-
- Retourne :
- - scores_history : dict {date → {reg_id → score}}
- - errors_history : dict {date → {reg_id → err_pondérée}}
- - mapping : dict {reg_id_original → reg_id_courant} (après chirurgie)
- """
- # Initialisation
- scores = dict(weights) # scores à t_ref
- scores_history = {all_months[-1]: dict(scores)}
- errors_history = {}
-
- # Mapping actuel (identité au départ)
- mapping = {r: r for r in universe}
-
- # Flows indexés pour accès rapide
- flows_idx = monthly_flows.set_index(['date', 'reg_id', 'isin'])['qty_net_month']
-
- # Remonter dans le temps
- for i in range(len(all_months) - 2, -1, -1):
- t_prev = all_months[i]
- t_curr = all_months[i + 1]
-
- errors_at_t = {}
- new_scores = {}
-
- for reg_orig, reg_curr in mapping.items():
- score_curr = scores.get(reg_orig, 0)
- if score_curr == 0:
- new_scores[reg_orig] = 0
- continue
-
- # ISIN détenus par ce reg à t_curr (après mapping)
- if reg_curr in panel.columns.get_level_values(0):
- isin_list = panel[reg_curr].columns.tolist()
- else:
- # reg_curr n'existe pas du tout dans le panel → rupture totale
- new_scores[reg_orig] = 0
- errors_at_t[reg_orig] = 1.0
- continue
-
- total_aum_t = 0
- weighted_err = 0
- valid_isin_count = 0
- all_nan_at_prev = True # détecte si le compte n'existait pas à t_prev
-
- for isin in isin_list:
- qty_t = panel[reg_curr][isin].get(t_curr, np.nan)
- qty_t_prev = panel[reg_curr][isin].get(t_prev, np.nan)
-
- if pd.isna(qty_t):
- continue
-
- if not pd.isna(qty_t_prev):
- all_nan_at_prev = False
-
- if pd.isna(qty_t_prev):
- # ISIN existait à t_curr mais pas à t_prev → rupture sur cet ISIN
- # On le traite comme une erreur maximale pondérée par son AUM
- weight_isin = abs(qty_t)
- weighted_err += 1.0 * weight_isin
- total_aum_t += weight_isin
- valid_isin_count += 1
- continue
-
- if qty_t == 0 and qty_t_prev == 0:
- continue
- # Flow agrégé sur ]t_prev, t_curr]
- try:
- net_flow = flows_idx.loc[(t_curr, reg_curr, isin)]
- except KeyError:
- net_flow = 0.0
-
- err_ratio, is_break = compute_reconciliation_error(
- qty_t_prev, qty_t, net_flow, alpha=ALPHA
- )
-
- # Pondération par AUM à t_curr
- weight_isin = abs(qty_t)
- weighted_err += err_ratio * weight_isin
- total_aum_t += weight_isin
- valid_isin_count += 1
-
- if total_aum_t > 0 and valid_isin_count > 0:
- avg_err = weighted_err / total_aum_t
- else:
- avg_err = 0.0
-
- errors_at_t[reg_orig] = avg_err
-
- # Dégradation du score : score(t-1) = score(t) * (1 - err_pondérée)
- # Clippée entre 0 et score_curr
- degradation = min(avg_err, 1.0)
- new_scores[reg_orig] = score_curr * (1.0 - degradation)
-
- scores = new_scores
- scores_history[t_prev] = dict(scores)
- errors_history[t_prev] = dict(errors_at_t)
-
- total_score = sum(scores.values())
- print(f" {t_prev.date()} | Σ scores = {total_score:.4f} | "
- f"Comptes actifs = {sum(1 for v in scores.values() if v > 0)}")
-
- return scores_history, errors_history, mapping
-
-# ─────────────────────────────────────────────
-# 6. ÉTAPE 3 — Chirurgie de code
-# ─────────────────────────────────────────────
-def jaccard_isin(set_a, set_b):
- """Coefficient de Jaccard entre deux ensembles d'ISIN."""
- if not set_a or not set_b:
- return 0.0
- inter = len(set_a & set_b)
- union = len(set_a | set_b)
- return inter / union if union > 0 else 0.0
-
-def find_best_candidate(reg_orig, reg_curr, t_prev, t_curr,
- panel, flows_idx, all_regs_at_t_prev, mapping_inv):
- """
- Pour un reg_id dont le score a fortement chuté, cherche le meilleur
- candidat j à t_prev tel que :
- - j n'est pas déjà mappé à un autre compte original
- - Le portefeuille ISIN de j à t_prev est similaire à celui de reg_curr à t_curr
- - La réconciliation est bonne
-
- Retourne (best_candidate, best_score_composite) ou (None, 0)
- """
- # ISIN du compte cible à t_curr
- if reg_curr not in panel.columns.get_level_values(0):
- return None, 0.0
-
- isin_curr = set(panel[reg_curr].columns[
- panel[reg_curr].loc[t_curr].notna() & (panel[reg_curr].loc[t_curr] != 0)
- ].tolist())
-
- if not isin_curr:
- return None, 0.0
-
- best_candidate = None
- best_composite = 0.0
-
- for j in all_regs_at_t_prev:
- # Ne pas réutiliser un code déjà mappé
- if j in mapping_inv:
- continue
- # Ne pas mapper sur soi-même si déjà présent
- if j == reg_curr:
- continue
-
- if j not in panel.columns.get_level_values(0):
- continue
-
- # ISIN de j à t_prev
- col_j = panel[j]
- isin_j = set(col_j.columns[
- col_j.loc[t_prev].notna() & (col_j.loc[t_prev] != 0)
- ].tolist()) if t_prev in col_j.index else set()
-
- if not isin_j:
- continue
-
- jac = jaccard_isin(isin_curr, isin_j)
- if jac < MIN_JACCARD:
- continue
-
- # Erreur de réconciliation pour les ISIN communs
- common_isin = isin_curr & isin_j
- total_aum = 0
- weighted_err = 0
-
- for isin in common_isin:
- qty_t = panel[reg_curr][isin].get(t_curr, np.nan) if isin in panel[reg_curr].columns else np.nan
- qty_t_prev = panel[j][isin].get(t_prev, np.nan) if isin in panel[j].columns else np.nan
-
- if pd.isna(qty_t) or pd.isna(qty_t_prev):
- continue
-
- try:
- net_flow = flows_idx.loc[(t_curr, j, isin)]
- except KeyError:
- net_flow = 0.0
-
- err_ratio, _ = compute_reconciliation_error(qty_t_prev, qty_t, net_flow)
- weight_isin = abs(qty_t)
- weighted_err += err_ratio * weight_isin
- total_aum += weight_isin
-
- avg_err = weighted_err / total_aum if total_aum > 0 else 1.0
-
- composite = jac * (1.0 - min(avg_err, 1.0))
-
- if composite > best_composite:
- best_composite = composite
- best_candidate = j
-
- return best_candidate, best_composite
-
-
-def _recompute_score_with_candidate(reg_orig, candidate, t_prev, t_curr,
- panel, flows_idx, score_curr):
- """
- Recalcule proprement l'erreur de réconciliation pour un candidat donné,
- et retourne le score après chirurgie.
- """
- if candidate not in panel.columns.get_level_values(0):
- return score_curr * 0 # candidat inexistant
-
- isin_list_cand = panel[candidate].columns.tolist()
- isin_list_curr = panel[reg_orig].columns.tolist() if reg_orig in panel.columns.get_level_values(0) else []
-
- total_aum = 0
- weighted_err = 0
-
- for isin in isin_list_curr:
- qty_t = panel[reg_orig][isin].get(t_curr, np.nan) if isin in panel[reg_orig].columns else np.nan
- if pd.isna(qty_t) or qty_t == 0:
- continue
-
- qty_t_prev = panel[candidate][isin].get(t_prev, np.nan) if isin in panel[candidate].columns else np.nan
-
- try:
- net_flow = flows_idx.loc[(t_curr, candidate, isin)]
- except KeyError:
- net_flow = 0.0
-
- if pd.isna(qty_t_prev):
- err_ratio = 1.0
- else:
- err_ratio, _ = compute_reconciliation_error(qty_t_prev, qty_t, net_flow)
-
- weight_isin = abs(qty_t)
- weighted_err += err_ratio * weight_isin
- total_aum += weight_isin
-
- avg_err = weighted_err / total_aum if total_aum > 0 else 1.0
- return score_curr * (1.0 - min(avg_err, 1.0))
-
-
-def run_surgery_pass(scores_history, errors_history, panel, monthly_flows,
- weights, universe, all_months):
- """
- Deuxième passe : pour chaque mois avec des ruptures fortes,
- tente une chirurgie de code et recalcule les scores.
-
- Corrections par rapport à la passe naïve :
- - Après chirurgie, le score est recalculé proprement (pas juste composite)
- - Le mapping propagé en arrière utilise le bon code à chaque étape
- - Pré-filtre ISIN pour performance sur grand dataset
-
- Retourne :
- - mapping_history : {date → {reg_orig → reg_used}}
- - surgery_log : liste des opérations effectuées
- - scores_final : scores au dernier mois
- """
- flows_idx = monthly_flows.set_index(['date', 'reg_id', 'isin'])['qty_net_month']
-
- # Tous les reg_ids présents dans le panel (univers + codes historiques)
- all_regs_in_panel = set(panel.columns.get_level_values(0))
-
- # Pré-calcul : ensemble d'ISIN par reg_id à chaque date (pour pré-filtre rapide)
- # {reg_id → {date → set(isin)}}
- reg_isin_at_date = {}
- for reg in all_regs_in_panel:
- reg_isin_at_date[reg] = {}
- col = panel[reg]
- for date in col.index:
- active = set(col.columns[(col.loc[date].notna()) & (col.loc[date] != 0)].tolist())
- if active:
- reg_isin_at_date[reg][date] = active
-
- # Mapping courant : reg_orig → reg_used
- mapping = {r: r for r in universe}
- mapping_inv = {r: r for r in universe}
-
- surgery_log = []
- mapping_history = {all_months[-1]: dict(mapping)}
- scores_history_corrected = {all_months[-1]: dict(weights)}
-
- # Scores courants (initialisés à t_ref)
- scores = dict(weights)
-
- for i in range(len(all_months) - 2, -1, -1):
- t_prev = all_months[i]
- t_curr = all_months[i + 1]
-
- new_scores = {}
- new_mapping = {}
-
- for reg_orig in list(mapping.keys()):
- reg_curr = mapping[reg_orig]
- score_curr = scores.get(reg_orig, 0)
-
- if score_curr == 0:
- new_scores[reg_orig] = 0
- new_mapping[reg_orig] = reg_curr
- continue
-
- # Erreur sans chirurgie (depuis étape 2)
- err = errors_history.get(t_prev, {}).get(reg_orig, 0.0)
- score_prev_no_surgery = score_curr * (1.0 - min(err, 1.0))
- drop_ratio = 1.0 - (score_prev_no_surgery / score_curr) if score_curr > 0 else 0
-
- if drop_ratio > SCORE_DROP_THRESHOLD:
- # ── ISIN du compte courant à t_curr (pour pré-filtre) ──
- isin_curr = reg_isin_at_date.get(reg_curr, {}).get(t_curr, set())
-
- # ── Candidats disponibles (non déjà mappés) ──
- available = all_regs_in_panel - set(mapping_inv.keys()) - {reg_curr}
-
- best_candidate = None
- best_score_after = score_prev_no_surgery # baseline = pas de chirurgie
- best_composite = 0.0
-
- for j in available:
- # Pré-filtre rapide : overlap ISIN minimal
- isin_j = reg_isin_at_date.get(j, {}).get(t_prev, set())
- if not isin_curr or not isin_j:
- continue
- inter = len(isin_curr & isin_j)
- if inter == 0:
- continue
- jac = inter / len(isin_curr | isin_j)
- if jac < MIN_JACCARD:
- continue
-
- # Score après chirurgie avec ce candidat
- score_after = _recompute_score_with_candidate(
- reg_curr, j, t_prev, t_curr, panel, flows_idx, score_curr
- )
- composite = jac * (score_after / score_curr) if score_curr > 0 else 0
-
- if score_after > best_score_after:
- best_score_after = score_after
- best_candidate = j
- best_composite = composite
-
- if best_candidate:
- surgery_log.append({
- 'date': t_prev,
- 'reg_orig': reg_orig,
- 'reg_from': reg_curr,
- 'reg_to': best_candidate,
- 'jaccard_composite': round(best_composite, 4),
- 'score_before': round(score_curr, 6),
- 'score_after': round(best_score_after, 6),
- 'drop_without_surgery': round(drop_ratio, 4),
- 'gain_vs_no_surgery': round(best_score_after - score_prev_no_surgery, 6),
- })
- print(f" 🔧 CHIRURGIE {t_prev.date()} | {reg_orig} : "
- f"{reg_curr} → {best_candidate} "
- f"(composite={best_composite:.3f}, "
- f"score {score_curr:.4f}→{best_score_after:.4f})")
-
- # Mise à jour mapping
- if reg_curr in mapping_inv:
- del mapping_inv[reg_curr]
- mapping_inv[best_candidate] = reg_orig
- new_mapping[reg_orig] = best_candidate
- new_scores[reg_orig] = best_score_after
- else:
- new_mapping[reg_orig] = reg_curr
- new_scores[reg_orig] = score_prev_no_surgery
- else:
- new_mapping[reg_orig] = reg_curr
- new_scores[reg_orig] = score_prev_no_surgery
-
- mapping = new_mapping
- mapping_inv = {v: k for k, v in mapping.items()}
- scores = new_scores
- mapping_history[t_prev] = dict(mapping)
- scores_history_corrected[t_prev] = dict(scores)
-
- total_score = sum(s for s in scores.values() if not np.isnan(s))
- n_surgeries = sum(1 for op in surgery_log if op['date'] == t_prev)
- print(f" {t_prev.date()} | Σ scores = {total_score:.4f} | "
- f"Chirurgies = {n_surgeries}")
-
- return mapping_history, surgery_log, scores, scores_history_corrected
-
-# ─────────────────────────────────────────────
-# 7. EXPORT RÉSULTATS
-# ─────────────────────────────────────────────
-def export_results(scores_history, mapping_history, surgery_log, all_months, out_prefix="carmignac"):
- """Exporte les résultats clés en CSV."""
-
- # Score history
- rows = []
- for date, sc in scores_history.items():
- for reg, score in sc.items():
- rows.append({'date': date, 'reg_id': reg, 'score': score})
- df_scores = pd.DataFrame(rows) if rows else pd.DataFrame(columns=['date', 'reg_id', 'score'])
- if not df_scores.empty:
- df_scores = df_scores.sort_values(['date', 'score'], ascending=[True, False])
- df_scores.to_csv(f"repair_results/{out_prefix}_scores.csv", index=False)
-
- # Mapping history
- rows_m = []
- for date, mp in mapping_history.items():
- for reg_orig, reg_used in mp.items():
- rows_m.append({'date': date, 'reg_orig': reg_orig, 'reg_used': reg_used,
- 'changed': reg_orig != reg_used})
- df_mapping = pd.DataFrame(rows_m) if rows_m else pd.DataFrame(columns=['date', 'reg_orig', 'reg_used', 'changed'])
- if not df_mapping.empty:
- df_mapping = df_mapping.sort_values(['date', 'reg_orig'])
- df_mapping.to_csv(f"repair_results/{out_prefix}_mapping.csv", index=False)
-
- # Surgery log
- if surgery_log:
- df_surgery = pd.DataFrame(surgery_log).sort_values('date')
- df_surgery.to_csv(f"repair_results/{out_prefix}_surgery_log.csv", index=False)
- print(f"\n[Export] {len(surgery_log)} opérations de chirurgie sauvegardées.")
- else:
- print("\n[Export] Aucune chirurgie effectuée sur ce subset.")
-
- print(f"[Export] Scores → {out_prefix}_scores.csv")
- print(f"[Export] Mapping → {out_prefix}_mapping.csv")
-
- return df_scores, df_mapping
-
-# ─────────────────────────────────────────────
-# 8. PIPELINE PRINCIPAL
-# ─────────────────────────────────────────────
-def run_pipeline(aum_path, flows_path):
- print("=" * 60)
- print("CARMIGNAC — Pipeline de réparation des Registrar IDs")
- print("=" * 60)
-
- # Chargement
- aum, flows = load_data(aum_path, flows_path)
-
- # Étape 1 — Univers de référence
- aum_ref, weights, universe, t_ref = build_reference_universe(aum)
-
- print(f"\n Top 5 comptes par poids :")
- for reg, w in sorted(weights.items(), key=lambda x: -x[1])[:5]:
- print(f" {reg} : {w:.4f} ({w*100:.2f}%)")
-
- # Panel mensuel
- panel, all_months = build_monthly_panel(aum, universe, t_ref)
-
- # Flows mensuels agrégés
- monthly_flows = aggregate_flows_monthly(flows, all_months)
-
- # Étape 2 — Score de cohérence (sans chirurgie)
- print("\n[Étape 2] Propagation des scores (sans chirurgie)...")
- scores_history, errors_history, _ = score_propagation(
- panel, monthly_flows, weights, universe, all_months
- )
-
- # Étape 3 — Chirurgie
- print("\n[Étape 3] Passe de chirurgie...")
- mapping_history, surgery_log, final_scores, scores_history_corrected = run_surgery_pass(
- scores_history, errors_history, panel, monthly_flows,
- weights, universe, all_months
- )
-
- # Export — on utilise les scores corrigés (post-chirurgie) comme référence
- print("\n[Export des résultats...]")
- df_scores, df_mapping = export_results(
- scores_history_corrected, mapping_history, surgery_log, all_months
- )
-
- # Résumé final
- print("\n" + "=" * 60)
- print("RÉSUMÉ FINAL")
- print("=" * 60)
- print(f" Dates couvertes : {all_months[0].date()} → {all_months[-1].date()}")
- print(f" Comptes dans l'univers : {len(universe)}")
- print(f" Chirurgies effectuées : {len(surgery_log)}")
- score_by_date = {d: sum(s for s in sc.values() if s == s)
- for d, sc in scores_history_corrected.items()}
- print(f" Σ scores à t_ref : {score_by_date[t_ref]:.4f}")
- print(f" Σ scores à t_min : {score_by_date[all_months[0]]:.4f}")
-
- return df_scores, df_mapping, surgery_log, scores_history_corrected, mapping_history
-
-
-if __name__ == "__main__":
- df_scores, df_mapping, surgery_log, scores_history, mapping_history = run_pipeline(
- "s3://projet-bdc-carmignac-g3/stock_repaired.csv",
- "projet-bdc-data//carmignac/Flows ENSAE V2 -20251105.csv"
- )
diff --git a/repair_challenge/repair_results/carmignac_report.html b/repair_challenge/repair_results/carmignac_report.html
new file mode 100644
index 0000000..bbaa54b
--- /dev/null
+++ b/repair_challenge/repair_results/carmignac_report.html
@@ -0,0 +1,10009 @@
+
+
+
+
+
+Carmignac Pipeline — Analysis Report
+
+
+
+
+
+
+
+
+
+
+
+ Σ score at t_ref
+ 1.0000
+ post-surgery
+
+
+ Σ score at t_min
+ 0.2476
+ post-surgery
+
+
+ Max recovery
+ 70.5%
+ score rescued by surgery
+
+
+ Total surgeries
+ 512
+ operations performed
+
+
+ Reg IDs universe
+ 432
+ at reference date
+
+
+ Ever remapped
+ 340
+ reg IDs w/ code change
+
+
+
+
+
+
+
01 · Score Integrity Over Time
+
+
+
+
+
+
+
+
02 · Individual Score Trajectories
+
+
+
+
+
+
+
+
+
+
+
+
+
All accounts — overview
+
+
+
+
+
+
03 · Surgery Operations
+
+
+
+
+
+
04 · Surgery Detail Log
+
+
+
+
+
+
+
+
+ | Date |
+ Reg orig |
+ Code from |
+ |
+ Code to |
+ Jaccard |
+ Score gain |
+ % of score |
+
+
+
+
+ | 2015-01-31 |
+ 420207 |
+ 419164 |
+ → |
+ 406169 |
+ 0.1294 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2015-01-31 |
+ 200002389 |
+ 200002389 |
+ → |
+ 365088 |
+ 0.9745 |
+ +0.001258 |
+ 97.4% |
+
+
+ | 2015-02-28 |
+ 365376 |
+ 365852 |
+ → |
+ 206597 |
+ 0.0887 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2015-02-28 |
+ 200002429 |
+ 200002429 |
+ → |
+ 417544 |
+ 0.2401 |
+ +0.000018 |
+ 52.9% |
+
+
+ | 2015-02-28 |
+ 420207 |
+ 406169 |
+ → |
+ 419164 |
+ 0.2260 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2015-03-31 |
+ 200006349 |
+ 200006349 |
+ → |
+ 200000685 |
+ 0.0745 |
+ +0.000007 |
+ 15.6% |
+
+
+ | 2015-04-30 |
+ 420207 |
+ 419164 |
+ → |
+ 406169 |
+ 0.1259 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2015-06-30 |
+ 200013231 |
+ 200013231 |
+ → |
+ 366377 |
+ 0.9000 |
+ +0.000261 |
+ 100.0% |
+
+
+ | 2015-06-30 |
+ 200012832 |
+ 200012832 |
+ → |
+ 200001836 |
+ 0.1833 |
+ +0.000017 |
+ 47.2% |
+
+
+ | 2015-06-30 |
+ 200013447 |
+ 200000310 |
+ → |
+ 200002012 |
+ 0.2842 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2015-07-31 |
+ 200013447 |
+ 200002012 |
+ → |
+ 200000310 |
+ 0.3283 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2015-08-31 |
+ 200017561 |
+ 200017561 |
+ → |
+ 366110 |
+ 0.3769 |
+ +0.000066 |
+ 79.5% |
+
+
+ | 2015-09-30 |
+ 420207 |
+ 406169 |
+ → |
+ 419164 |
+ 0.2092 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2015-09-30 |
+ 200019940 |
+ 200019940 |
+ → |
+ 365900 |
+ 0.2647 |
+ +0.001030 |
+ 79.5% |
+
+
+ | 2015-10-31 |
+ 420207 |
+ 419164 |
+ → |
+ 406169 |
+ 0.1313 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2016-01-31 |
+ 200013447 |
+ 365543 |
+ → |
+ 200002012 |
+ 0.2509 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2016-02-29 |
+ 200034372 |
+ 419420 |
+ → |
+ 365044 |
+ 0.4154 |
+ +0.000115 |
+ 71.0% |
+
+
+ | 2016-04-30 |
+ 420207 |
+ 406169 |
+ → |
+ 419164 |
+ 0.1983 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2016-06-30 |
+ 200006534 |
+ 422835 |
+ → |
+ 200033926 |
+ 0.9983 |
+ +0.001001 |
+ 99.8% |
+
+
+ | 2016-06-30 |
+ 200043690 |
+ 365094 |
+ → |
+ 292071 |
+ 0.2038 |
+ +0.000049 |
+ 55.7% |
+
+
+ | 2016-07-31 |
+ 420207 |
+ 419164 |
+ → |
+ 406169 |
+ 0.1130 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2016-07-31 |
+ 200045720 |
+ 200045720 |
+ → |
+ 419484 |
+ 0.8537 |
+ +0.000237 |
+ 97.9% |
+
+
+ | 2016-08-31 |
+ 215905 |
+ 215905 |
+ → |
+ 365763 |
+ 0.1294 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2016-09-30 |
+ 200002147 |
+ 420239 |
+ → |
+ 200010610 |
+ 0.1281 |
+ +0.000065 |
+ 38.5% |
+
+
+ | 2016-09-30 |
+ 200043690 |
+ 200043690 |
+ → |
+ 365094 |
+ 0.3485 |
+ +0.000097 |
+ 78.9% |
+
+
+ | 2016-10-31 |
+ 200054046 |
+ 200001377 |
+ → |
+ 200001611 |
+ 0.1890 |
+ +0.000022 |
+ 48.9% |
+
+
+ | 2016-10-31 |
+ 200052562 |
+ 419171 |
+ → |
+ 419601 |
+ 0.1987 |
+ +0.000005 |
+ 50.0% |
+
+
+ | 2016-10-31 |
+ 365703 |
+ 365703 |
+ → |
+ 200029709 |
+ 0.1005 |
+ +0.000004 |
+ 22.2% |
+
+
+ | 2016-10-31 |
+ 200052208 |
+ 200052208 |
+ → |
+ 200041699 |
+ 0.4778 |
+ +0.000094 |
+ 95.9% |
+
+
+ | 2016-11-30 |
+ 200055990 |
+ 420053 |
+ → |
+ 366351 |
+ 0.2721 |
+ +0.000140 |
+ 81.4% |
+
+
+ | 2016-11-30 |
+ 365376 |
+ 13463 |
+ → |
+ 365852 |
+ 0.2170 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2016-11-30 |
+ 200054637 |
+ 200054637 |
+ → |
+ 419206 |
+ 0.8890 |
+ +0.000043 |
+ 93.5% |
+
+
+ | 2016-12-31 |
+ 365376 |
+ 365376 |
+ → |
+ 13463 |
+ 0.1462 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2016-12-31 |
+ 200059025 |
+ 366110 |
+ → |
+ 365928 |
+ 0.3579 |
+ +0.000053 |
+ 68.0% |
+
+
+ | 2016-12-31 |
+ 200059588 |
+ 200059588 |
+ → |
+ 365951 |
+ 0.2555 |
+ +0.000596 |
+ 51.1% |
+
+
+ | 2016-12-31 |
+ 200052562 |
+ 200052562 |
+ → |
+ 419171 |
+ 0.2002 |
+ +0.000002 |
+ 9.5% |
+
+
+ | 2017-02-28 |
+ 200064142 |
+ 200064142 |
+ → |
+ 364725 |
+ 0.3162 |
+ +0.000014 |
+ 66.7% |
+
+
+ | 2017-03-31 |
+ 200066763 |
+ 200066763 |
+ → |
+ 419403 |
+ 0.5818 |
+ +0.000032 |
+ 97.0% |
+
+
+ | 2017-03-31 |
+ 200067096 |
+ 200001611 |
+ → |
+ 418325 |
+ 0.2145 |
+ +0.000029 |
+ 64.4% |
+
+
+ | 2017-03-31 |
+ 200055990 |
+ 200055990 |
+ → |
+ 420053 |
+ 0.3190 |
+ +0.000093 |
+ 51.7% |
+
+
+ | 2017-03-31 |
+ 200066455 |
+ 200066455 |
+ → |
+ 200052949 |
+ 0.2357 |
+ +0.000117 |
+ 70.9% |
+
+
+ | 2017-03-31 |
+ 422554 |
+ 365429 |
+ → |
+ 419332 |
+ 0.2356 |
+ +0.000069 |
+ 55.6% |
+
+
+ | 2017-03-31 |
+ 200066667 |
+ 200066667 |
+ → |
+ 200032544 |
+ 0.9725 |
+ +0.000887 |
+ 97.3% |
+
+
+ | 2017-04-30 |
+ 365094 |
+ 365094 |
+ → |
+ 364867 |
+ 0.1729 |
+ +0.000004 |
+ 3.6% |
+
+
+ | 2017-04-30 |
+ 200069640 |
+ 419909 |
+ → |
+ 418497 |
+ 0.1683 |
+ +0.000004 |
+ 44.4% |
+
+
+ | 2017-05-31 |
+ 365376 |
+ 13463 |
+ → |
+ 365376 |
+ 0.2455 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2017-05-31 |
+ 420207 |
+ 420207 |
+ → |
+ 419164 |
+ 0.2492 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2017-06-30 |
+ 200073355 |
+ 200073355 |
+ → |
+ 366398 |
+ 0.9935 |
+ +0.004304 |
+ 99.3% |
+
+
+ | 2017-06-30 |
+ 200000147 |
+ 200000147 |
+ → |
+ 366595 |
+ 0.4308 |
+ +0.000513 |
+ 31.9% |
+
+
+ | 2017-06-30 |
+ 200073354 |
+ 200073354 |
+ → |
+ 366439 |
+ 0.9958 |
+ +0.009989 |
+ 99.6% |
+
+
+ | 2017-06-30 |
+ 200072907 |
+ 200072907 |
+ → |
+ 200000147 |
+ 0.4889 |
+ +0.000908 |
+ 77.5% |
+
+
+ | 2017-06-30 |
+ 200002375 |
+ 200002375 |
+ → |
+ 200002186 |
+ 0.0035 |
+ +0.000008 |
+ 1.1% |
+
+
+ | 2017-07-31 |
+ 200075932 |
+ 200075932 |
+ → |
+ 365865 |
+ 0.9883 |
+ +0.007751 |
+ 98.8% |
+
+
+ | 2017-08-31 |
+ 200079169 |
+ 200079169 |
+ → |
+ 200001568 |
+ 0.3363 |
+ +0.000005 |
+ 41.7% |
+
+
+ | 2017-09-30 |
+ 418456 |
+ 418456 |
+ → |
+ 420223 |
+ 0.1918 |
+ +0.000049 |
+ 43.8% |
+
+
+ | 2017-09-30 |
+ 200006534 |
+ 200006534 |
+ → |
+ 422835 |
+ 0.2549 |
+ +0.000729 |
+ 54.5% |
+
+
+ | 2017-09-30 |
+ 200083248 |
+ 200083248 |
+ → |
+ 366385 |
+ 0.9925 |
+ +0.000640 |
+ 99.2% |
+
+
+ | 2017-10-31 |
+ 200085615 |
+ 200085615 |
+ → |
+ 365903 |
+ 0.9980 |
+ +0.000932 |
+ 99.8% |
+
+
+ | 2017-10-31 |
+ 200002147 |
+ 200002147 |
+ → |
+ 420239 |
+ 0.2682 |
+ +0.000135 |
+ 64.3% |
+
+
+ | 2017-10-31 |
+ 200067096 |
+ 200067096 |
+ → |
+ 200001611 |
+ 0.7052 |
+ +0.000052 |
+ 67.5% |
+
+
+ | 2017-10-31 |
+ 200013447 |
+ 200013447 |
+ → |
+ 365543 |
+ 0.4770 |
+ +0.000001 |
+ 50.0% |
+
+
+ | 2017-11-30 |
+ 365090 |
+ 365090 |
+ → |
+ 364829 |
+ 0.1564 |
+ +0.000033 |
+ 38.4% |
+
+
+ | 2017-11-30 |
+ 200034372 |
+ 200034372 |
+ → |
+ 419420 |
+ 0.3767 |
+ +0.000044 |
+ 11.7% |
+
+
+ | 2017-11-30 |
+ 200021958 |
+ 200021958 |
+ → |
+ 200064877 |
+ 0.1742 |
+ +0.000013 |
+ 8.9% |
+
+
+ | 2017-11-30 |
+ 200086037 |
+ 200002244 |
+ → |
+ 365712 |
+ 0.3185 |
+ +0.000189 |
+ 95.5% |
+
+
+ | 2017-11-30 |
+ 200086654 |
+ 200086654 |
+ → |
+ 419801 |
+ 0.5215 |
+ +0.000074 |
+ 66.7% |
+
+
+ | 2017-12-31 |
+ 200089406 |
+ 100000070 |
+ → |
+ 419997 |
+ 0.2458 |
+ +0.000023 |
+ 47.9% |
+
+
+ | 2017-12-31 |
+ 200086548 |
+ 200086548 |
+ → |
+ 365959 |
+ 0.2662 |
+ +0.001714 |
+ 79.9% |
+
+
+ | 2017-12-31 |
+ 200001621 |
+ 200001621 |
+ → |
+ 200032028 |
+ 0.1975 |
+ +0.000002 |
+ 22.2% |
+
+
+ | 2018-01-31 |
+ 200002321 |
+ 200002321 |
+ → |
+ 200001520 |
+ 0.1992 |
+ +0.000015 |
+ 35.7% |
+
+
+ | 2018-01-31 |
+ 200054046 |
+ 200054046 |
+ → |
+ 200001377 |
+ 0.5275 |
+ +0.000056 |
+ 45.5% |
+
+
+ | 2018-01-31 |
+ 200093331 |
+ 403904 |
+ → |
+ 200001290 |
+ 0.5747 |
+ +0.000100 |
+ 70.9% |
+
+
+ | 2018-01-31 |
+ 200092081 |
+ 200092081 |
+ → |
+ 200002115 |
+ 0.4658 |
+ +0.000219 |
+ 93.2% |
+
+
+ | 2018-02-28 |
+ 200093331 |
+ 200091289 |
+ → |
+ 403904 |
+ 0.2778 |
+ +0.000136 |
+ 67.0% |
+
+
+ | 2018-03-31 |
+ 200093331 |
+ 200093331 |
+ → |
+ 200091289 |
+ 0.3499 |
+ +0.000122 |
+ 52.6% |
+
+
+ | 2018-03-31 |
+ 200096002 |
+ 200096002 |
+ → |
+ 200000367 |
+ 0.9654 |
+ +0.000182 |
+ 96.8% |
+
+
+ | 2018-04-30 |
+ 200091288 |
+ 200091288 |
+ → |
+ 200036848 |
+ 0.6177 |
+ +0.000029 |
+ 63.0% |
+
+
+ | 2018-05-31 |
+ 200089406 |
+ 200089406 |
+ → |
+ 100000070 |
+ 0.2064 |
+ +0.000029 |
+ 35.8% |
+
+
+ | 2018-07-31 |
+ 200059025 |
+ 200059025 |
+ → |
+ 366110 |
+ 0.2181 |
+ +0.000024 |
+ 19.1% |
+
+
+ | 2018-08-31 |
+ 200102125 |
+ 200102125 |
+ → |
+ 200038056 |
+ 0.2034 |
+ +0.000029 |
+ 52.7% |
+
+
+ | 2018-08-31 |
+ 200002087 |
+ 365959 |
+ → |
+ 200090339 |
+ 0.4786 |
+ +0.000392 |
+ 79.8% |
+
+
+ | 2018-09-30 |
+ 200002087 |
+ 200002087 |
+ → |
+ 365959 |
+ 0.2970 |
+ +0.000257 |
+ 38.8% |
+
+
+ | 2018-09-30 |
+ 200102184 |
+ 200093304 |
+ → |
+ 200014222 |
+ 0.3539 |
+ +0.000072 |
+ 56.7% |
+
+
+ | 2018-10-31 |
+ 200102238 |
+ 200002382 |
+ → |
+ 365960 |
+ 0.3359 |
+ +0.000191 |
+ 67.2% |
+
+
+ | 2018-10-31 |
+ 200102220 |
+ 200102220 |
+ → |
+ 419098 |
+ 0.9583 |
+ +0.000089 |
+ 98.9% |
+
+
+ | 2018-11-30 |
+ 200102238 |
+ 200102238 |
+ → |
+ 200002382 |
+ 0.2762 |
+ +0.000199 |
+ 51.5% |
+
+
+ | 2018-11-30 |
+ 200086037 |
+ 200080574 |
+ → |
+ 200002244 |
+ 0.4747 |
+ +0.000129 |
+ 61.7% |
+
+
+ | 2018-11-30 |
+ 200104338 |
+ 200104338 |
+ → |
+ 366425 |
+ 0.5582 |
+ +0.000015 |
+ 93.8% |
+
+
+ | 2018-11-30 |
+ 200102184 |
+ 200102184 |
+ → |
+ 200093304 |
+ 0.2161 |
+ +0.000064 |
+ 31.2% |
+
+
+ | 2018-11-30 |
+ 200074669 |
+ 366107 |
+ → |
+ 200056069 |
+ 0.2870 |
+ +0.000056 |
+ 50.0% |
+
+
+ | 2019-02-28 |
+ 200074669 |
+ 200056069 |
+ → |
+ 366107 |
+ 0.2183 |
+ +0.000001 |
+ 0.3% |
+
+
+ | 2019-03-31 |
+ 200039998 |
+ 200039998 |
+ → |
+ 200041957 |
+ 0.2434 |
+ +0.000347 |
+ 75.4% |
+
+
+ | 2019-04-30 |
+ 200126380 |
+ 419420 |
+ → |
+ 200101894 |
+ 0.0991 |
+ +0.000199 |
+ 24.8% |
+
+
+ | 2019-05-31 |
+ 200126380 |
+ 200101894 |
+ → |
+ 419420 |
+ 0.2501 |
+ +0.000474 |
+ 38.4% |
+
+
+ | 2019-06-30 |
+ 200126515 |
+ 200001527 |
+ → |
+ 365495 |
+ 0.1403 |
+ +0.000133 |
+ 42.1% |
+
+
+ | 2019-07-31 |
+ 366107 |
+ 366107 |
+ → |
+ 365850 |
+ 0.7967 |
+ +0.000059 |
+ 64.1% |
+
+
+ | 2019-07-31 |
+ 200126702 |
+ 200126702 |
+ → |
+ 422250 |
+ 0.1832 |
+ +0.000218 |
+ 48.9% |
+
+
+ | 2019-08-31 |
+ 200126717 |
+ 200126717 |
+ → |
+ 200126252 |
+ 0.1221 |
+ +0.000013 |
+ 12.4% |
+
+
+ | 2019-09-30 |
+ 200094954 |
+ 200001930 |
+ → |
+ 200086040 |
+ 0.3871 |
+ +0.000005 |
+ 71.4% |
+
+
+ | 2019-10-31 |
+ 200074669 |
+ 200074669 |
+ → |
+ 200056069 |
+ 0.9676 |
+ +0.000932 |
+ 98.4% |
+
+
+ | 2019-10-31 |
+ 200094954 |
+ 418840 |
+ → |
+ 200001930 |
+ 0.1228 |
+ +0.000001 |
+ 5.6% |
+
+
+ | 2019-10-31 |
+ 200127381 |
+ 200127381 |
+ → |
+ 200091482 |
+ 0.2293 |
+ +0.000040 |
+ 23.0% |
+
+
+ | 2019-11-30 |
+ 200127201 |
+ 200101961 |
+ → |
+ 364836 |
+ 0.2248 |
+ +0.000003 |
+ 75.0% |
+
+
+ | 2019-11-30 |
+ 200127428 |
+ 200127428 |
+ → |
+ 200090331 |
+ 0.9556 |
+ +0.000134 |
+ 95.7% |
+
+
+ | 2019-11-30 |
+ 200127225 |
+ 200127225 |
+ → |
+ 418611 |
+ 0.4630 |
+ +0.000014 |
+ 82.3% |
+
+
+ | 2019-11-30 |
+ 200127417 |
+ 200127417 |
+ → |
+ 200093149 |
+ 0.9807 |
+ +0.000358 |
+ 98.1% |
+
+
+ | 2019-11-30 |
+ 200127308 |
+ 200127307 |
+ → |
+ 422225 |
+ 0.6016 |
+ +0.000019 |
+ 70.4% |
+
+
+ | 2019-11-30 |
+ 200127430 |
+ 200127430 |
+ → |
+ 200090334 |
+ 0.6283 |
+ +0.002753 |
+ 94.2% |
+
+
+ | 2019-11-30 |
+ 200127316 |
+ 200127316 |
+ → |
+ 200090001 |
+ 0.5390 |
+ +0.004927 |
+ 83.3% |
+
+
+ | 2019-11-30 |
+ 200127613 |
+ 200127613 |
+ → |
+ 420375 |
+ 0.9976 |
+ +0.000008 |
+ 100.0% |
+
+
+ | 2019-11-30 |
+ 200127410 |
+ 366582 |
+ → |
+ 200126603 |
+ 0.0352 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2019-11-30 |
+ 200127552 |
+ 200127552 |
+ → |
+ 200091653 |
+ 0.3369 |
+ +0.002304 |
+ 49.4% |
+
+
+ | 2019-11-30 |
+ 200127587 |
+ 200127587 |
+ → |
+ 200090321 |
+ 0.4706 |
+ +0.000058 |
+ 70.7% |
+
+
+ | 2019-11-30 |
+ 200127306 |
+ 200127306 |
+ → |
+ 200090347 |
+ 0.9844 |
+ +0.000434 |
+ 98.6% |
+
+
+ | 2019-11-30 |
+ 200127598 |
+ 200127598 |
+ → |
+ 200102239 |
+ 0.9724 |
+ +0.000012 |
+ 100.0% |
+
+
+ | 2019-11-30 |
+ 200127186 |
+ 200127186 |
+ → |
+ 200126350 |
+ 0.9880 |
+ +0.001644 |
+ 98.8% |
+
+
+ | 2019-11-30 |
+ 200127174 |
+ 200127174 |
+ → |
+ 200090288 |
+ 0.4421 |
+ +0.000073 |
+ 73.7% |
+
+
+ | 2019-11-30 |
+ 200127484 |
+ 200127484 |
+ → |
+ 406048 |
+ 0.9583 |
+ +0.000121 |
+ 96.0% |
+
+
+ | 2019-11-30 |
+ 200127435 |
+ 200127435 |
+ → |
+ 200097937 |
+ 0.9700 |
+ +0.000204 |
+ 94.9% |
+
+
+ | 2019-11-30 |
+ 200127415 |
+ 200127415 |
+ → |
+ 405760 |
+ 0.4258 |
+ +0.002505 |
+ 59.6% |
+
+
+ | 2019-11-30 |
+ 200127343 |
+ 200001942 |
+ → |
+ 417654 |
+ 0.0644 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2019-11-30 |
+ 200127191 |
+ 200127191 |
+ → |
+ 200090035 |
+ 0.3309 |
+ +0.000074 |
+ 88.1% |
+
+
+ | 2019-11-30 |
+ 200127454 |
+ 200127454 |
+ → |
+ 416348 |
+ 0.9826 |
+ +0.013998 |
+ 98.3% |
+
+
+ | 2019-11-30 |
+ 200127703 |
+ 364544 |
+ → |
+ 420049 |
+ 0.4777 |
+ +0.000013 |
+ 86.7% |
+
+
+ | 2019-11-30 |
+ 200127433 |
+ 200127433 |
+ → |
+ 200126539 |
+ 0.9386 |
+ +0.000605 |
+ 93.8% |
+
+
+ | 2019-11-30 |
+ 200127403 |
+ 200127403 |
+ → |
+ 200102138 |
+ 0.9893 |
+ +0.000342 |
+ 98.8% |
+
+
+ | 2019-11-30 |
+ 200127391 |
+ 200127391 |
+ → |
+ 200090075 |
+ 0.9917 |
+ +0.000457 |
+ 99.3% |
+
+
+ | 2019-11-30 |
+ 200127371 |
+ 200127371 |
+ → |
+ 422824 |
+ 0.1137 |
+ +0.000002 |
+ 22.2% |
+
+
+ | 2019-11-30 |
+ 200127157 |
+ 200127157 |
+ → |
+ 200090310 |
+ 0.4482 |
+ +0.000021 |
+ 80.8% |
+
+
+ | 2019-11-30 |
+ 200127362 |
+ 200127362 |
+ → |
+ 200090057 |
+ 0.9169 |
+ +0.001898 |
+ 97.8% |
+
+
+ | 2019-11-30 |
+ 200127376 |
+ 200127376 |
+ → |
+ 200089970 |
+ 0.9936 |
+ +0.000433 |
+ 99.3% |
+
+
+ | 2019-11-30 |
+ 200127456 |
+ 200127456 |
+ → |
+ 200101710 |
+ 0.2815 |
+ +0.000010 |
+ 83.3% |
+
+
+ | 2019-11-30 |
+ 200127404 |
+ 200127404 |
+ → |
+ 200090053 |
+ 0.5384 |
+ +0.000808 |
+ 89.8% |
+
+
+ | 2019-11-30 |
+ 200127434 |
+ 200127434 |
+ → |
+ 200126816 |
+ 0.9525 |
+ +0.000014 |
+ 93.3% |
+
+
+ | 2019-11-30 |
+ 200127401 |
+ 200127401 |
+ → |
+ 416630 |
+ 0.5000 |
+ +0.000052 |
+ 100.0% |
+
+
+ | 2019-11-30 |
+ 200127272 |
+ 365348 |
+ → |
+ 362820 |
+ 0.1824 |
+ +0.000074 |
+ 52.9% |
+
+
+ | 2019-11-30 |
+ 200127175 |
+ 200015699 |
+ → |
+ 366412 |
+ 0.0590 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2019-11-30 |
+ 200127553 |
+ 200127553 |
+ → |
+ 406681 |
+ 0.4392 |
+ +0.000351 |
+ 70.9% |
+
+
+ | 2019-11-30 |
+ 200127605 |
+ 200127605 |
+ → |
+ 200093152 |
+ 0.9783 |
+ +0.002574 |
+ 97.8% |
+
+
+ | 2019-11-30 |
+ 200127419 |
+ 200127419 |
+ → |
+ 200090312 |
+ 0.9776 |
+ +0.000112 |
+ 98.2% |
+
+
+ | 2019-11-30 |
+ 200127383 |
+ 200127383 |
+ → |
+ 200093279 |
+ 0.9781 |
+ +0.000330 |
+ 97.9% |
+
+
+ | 2019-11-30 |
+ 200127455 |
+ 200101868 |
+ → |
+ 416078 |
+ 0.2805 |
+ +0.000001 |
+ 50.0% |
+
+
+ | 2019-11-30 |
+ 200127498 |
+ 200127498 |
+ → |
+ 200102153 |
+ 0.9852 |
+ +0.000011 |
+ 91.7% |
+
+
+ | 2019-11-30 |
+ 200127432 |
+ 200127432 |
+ → |
+ 200001968 |
+ 0.8713 |
+ +0.002173 |
+ 98.0% |
+
+
+ | 2019-11-30 |
+ 200127190 |
+ 200127261 |
+ → |
+ 200090346 |
+ 0.6125 |
+ +0.000001 |
+ 100.0% |
+
+
+ | 2019-11-30 |
+ 200127135 |
+ 200127135 |
+ → |
+ 405297 |
+ 0.9854 |
+ +0.000326 |
+ 98.5% |
+
+
+ | 2019-11-30 |
+ 200127185 |
+ 200127185 |
+ → |
+ 200098303 |
+ 0.5408 |
+ +0.000003 |
+ 75.0% |
+
+
+ | 2019-11-30 |
+ 200127578 |
+ 200127578 |
+ → |
+ 200093153 |
+ 0.9749 |
+ +0.000414 |
+ 97.4% |
+
+
+ | 2019-11-30 |
+ 200127583 |
+ 200127583 |
+ → |
+ 200043661 |
+ 0.9858 |
+ +0.000085 |
+ 98.8% |
+
+
+ | 2019-11-30 |
+ 200127478 |
+ 200001522 |
+ → |
+ 200039765 |
+ 0.0966 |
+ +0.000003 |
+ 20.0% |
+
+
+ | 2019-11-30 |
+ 200127614 |
+ 200127614 |
+ → |
+ 406463 |
+ 0.9889 |
+ +0.000014 |
+ 93.3% |
+
+
+ | 2019-11-30 |
+ 200127463 |
+ 200127463 |
+ → |
+ 406308 |
+ 0.7038 |
+ +0.000121 |
+ 96.8% |
+
+
+ | 2019-11-30 |
+ 200127448 |
+ 200127448 |
+ → |
+ 200101980 |
+ 0.9956 |
+ +0.000375 |
+ 99.7% |
+
+
+ | 2019-11-30 |
+ 200127555 |
+ 200127410 |
+ → |
+ 200089945 |
+ 0.1977 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2019-11-30 |
+ 200127556 |
+ 200127556 |
+ → |
+ 200102219 |
+ 0.9620 |
+ +0.000271 |
+ 96.1% |
+
+
+ | 2019-11-30 |
+ 200127901 |
+ 200127901 |
+ → |
+ 200127902 |
+ 0.8532 |
+ +0.000123 |
+ 97.6% |
+
+
+ | 2019-11-30 |
+ 200127603 |
+ 200127603 |
+ → |
+ 200126545 |
+ 0.9973 |
+ +0.000212 |
+ 100.0% |
+
+
+ | 2019-11-30 |
+ 200127447 |
+ 200127447 |
+ → |
+ 200024003 |
+ 0.9753 |
+ +0.000125 |
+ 97.7% |
+
+
+ | 2019-11-30 |
+ 200127187 |
+ 200127187 |
+ → |
+ 200090074 |
+ 0.0583 |
+ +0.000109 |
+ 19.4% |
+
+
+ | 2019-11-30 |
+ 200127446 |
+ 200127446 |
+ → |
+ 200090044 |
+ 0.4933 |
+ +0.000937 |
+ 49.3% |
+
+
+ | 2019-11-30 |
+ 200127364 |
+ 200127364 |
+ → |
+ 200090056 |
+ 0.4829 |
+ +0.000479 |
+ 80.5% |
+
+
+ | 2019-11-30 |
+ 200127798 |
+ 200127798 |
+ → |
+ 200002256 |
+ 0.9627 |
+ +0.000242 |
+ 96.0% |
+
+
+ | 2019-12-31 |
+ 200102197 |
+ 362820 |
+ → |
+ 365990 |
+ 0.0360 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2019-12-31 |
+ 200127733 |
+ 200086500 |
+ → |
+ 200126595 |
+ 0.1460 |
+ +0.000001 |
+ 25.0% |
+
+
+ | 2019-12-31 |
+ 200127803 |
+ 366110 |
+ → |
+ 200102190 |
+ 0.3978 |
+ +0.000068 |
+ 73.9% |
+
+
+ | 2019-12-31 |
+ 200127764 |
+ 200101614 |
+ → |
+ 200002226 |
+ 0.9136 |
+ +0.000376 |
+ 91.3% |
+
+
+ | 2020-01-31 |
+ 200127816 |
+ 200127816 |
+ → |
+ 200127130 |
+ 0.4404 |
+ +0.000217 |
+ 71.8% |
+
+
+ | 2020-01-31 |
+ 200127809 |
+ 200127809 |
+ → |
+ 200127555 |
+ 0.0202 |
+ +0.000420 |
+ 5.0% |
+
+
+ | 2020-01-31 |
+ 200127817 |
+ 200127817 |
+ → |
+ 200001456 |
+ 0.1104 |
+ +0.000006 |
+ 35.3% |
+
+
+ | 2020-01-31 |
+ 200127815 |
+ 200127815 |
+ → |
+ 200127426 |
+ 0.1651 |
+ +0.000632 |
+ 49.6% |
+
+
+ | 2020-01-31 |
+ 200127812 |
+ 200127812 |
+ → |
+ 200127421 |
+ 0.2936 |
+ +0.000004 |
+ 57.1% |
+
+
+ | 2020-01-31 |
+ 200127803 |
+ 200127803 |
+ → |
+ 366110 |
+ 0.4959 |
+ +0.000057 |
+ 42.9% |
+
+
+ | 2020-01-31 |
+ 200095646 |
+ 200002164 |
+ → |
+ 200001860 |
+ 0.4739 |
+ +0.000017 |
+ 94.4% |
+
+
+ | 2020-01-31 |
+ 200127455 |
+ 200127455 |
+ → |
+ 200101868 |
+ 0.0909 |
+ +0.000001 |
+ 9.1% |
+
+
+ | 2020-01-31 |
+ 200127811 |
+ 200127811 |
+ → |
+ 62126 |
+ 0.2398 |
+ +0.000443 |
+ 51.9% |
+
+
+ | 2020-01-31 |
+ 200127810 |
+ 200127810 |
+ → |
+ 365922 |
+ 0.1419 |
+ +0.000691 |
+ 28.4% |
+
+
+ | 2020-01-31 |
+ 200127733 |
+ 200127733 |
+ → |
+ 200086500 |
+ 0.0733 |
+ +0.000003 |
+ 15.8% |
+
+
+ | 2020-01-31 |
+ 200127478 |
+ 200039765 |
+ → |
+ 200001522 |
+ 0.2409 |
+ +0.000015 |
+ 53.6% |
+
+
+ | 2020-02-29 |
+ 200127996 |
+ 200127262 |
+ → |
+ 200127819 |
+ 0.1547 |
+ +0.000047 |
+ 46.1% |
+
+
+ | 2020-02-29 |
+ 200102197 |
+ 62126 |
+ → |
+ 362820 |
+ 0.3124 |
+ +0.000002 |
+ 33.3% |
+
+
+ | 2020-02-29 |
+ 200127903 |
+ 420138 |
+ → |
+ 365418 |
+ 0.3273 |
+ +0.000139 |
+ 97.9% |
+
+
+ | 2020-03-31 |
+ 200126515 |
+ 200126515 |
+ → |
+ 200001527 |
+ 0.6679 |
+ +0.000227 |
+ 42.7% |
+
+
+ | 2020-03-31 |
+ 200128481 |
+ 200128481 |
+ → |
+ 422264 |
+ 0.2139 |
+ +0.000098 |
+ 42.8% |
+
+
+ | 2020-03-31 |
+ 200128363 |
+ 200128363 |
+ → |
+ 200127769 |
+ 0.9068 |
+ +0.000303 |
+ 90.7% |
+
+
+ | 2020-03-31 |
+ 200127416 |
+ 200127416 |
+ → |
+ 200127420 |
+ 0.9902 |
+ +0.002916 |
+ 98.8% |
+
+
+ | 2020-03-31 |
+ 200127639 |
+ 200127639 |
+ → |
+ 200127491 |
+ 0.9506 |
+ +0.000002 |
+ 100.0% |
+
+
+ | 2020-03-31 |
+ 200127903 |
+ 200127903 |
+ → |
+ 420138 |
+ 0.3627 |
+ +0.000115 |
+ 59.0% |
+
+
+ | 2020-03-31 |
+ 200127440 |
+ 200127440 |
+ → |
+ 200127385 |
+ 0.1926 |
+ +0.000236 |
+ 40.9% |
+
+
+ | 2020-04-30 |
+ 200128873 |
+ 362820 |
+ → |
+ 268562 |
+ 0.1146 |
+ +0.000613 |
+ 28.3% |
+
+
+ | 2020-04-30 |
+ 200095646 |
+ 200095646 |
+ → |
+ 200002164 |
+ 0.0913 |
+ +0.000016 |
+ 22.9% |
+
+
+ | 2020-04-30 |
+ 200102190 |
+ 200102190 |
+ → |
+ 419091 |
+ 0.1164 |
+ +0.000303 |
+ 29.5% |
+
+
+ | 2020-05-31 |
+ 200130500 |
+ 200130500 |
+ → |
+ 366007 |
+ 0.6486 |
+ +0.000059 |
+ 100.0% |
+
+
+ | 2020-05-31 |
+ 200127728 |
+ 200067682 |
+ → |
+ 200000702 |
+ 0.3018 |
+ +0.000005 |
+ 35.7% |
+
+
+ | 2020-05-31 |
+ 200129716 |
+ 200129716 |
+ → |
+ 200127608 |
+ 0.8960 |
+ +0.000128 |
+ 89.5% |
+
+
+ | 2020-05-31 |
+ 200129811 |
+ 200129811 |
+ → |
+ 365456 |
+ 0.0341 |
+ +0.000012 |
+ 7.1% |
+
+
+ | 2020-05-31 |
+ 200001285 |
+ 200001285 |
+ → |
+ 200085743 |
+ 0.2972 |
+ +0.000052 |
+ 86.7% |
+
+
+ | 2020-05-31 |
+ 200128873 |
+ 200128873 |
+ → |
+ 362820 |
+ 0.5083 |
+ +0.000074 |
+ 1.7% |
+
+
+ | 2020-06-30 |
+ 200127996 |
+ 200127996 |
+ → |
+ 200127262 |
+ 0.6904 |
+ +0.000119 |
+ 76.3% |
+
+
+ | 2020-06-30 |
+ 200127728 |
+ 200127728 |
+ → |
+ 200067682 |
+ 0.1891 |
+ +0.000010 |
+ 33.3% |
+
+
+ | 2020-07-31 |
+ 200130475 |
+ 200127769 |
+ → |
+ 200130431 |
+ 0.4531 |
+ +0.000018 |
+ 90.0% |
+
+
+ | 2020-08-31 |
+ 200127757 |
+ 200096386 |
+ → |
+ 200000307 |
+ 0.2641 |
+ +0.000006 |
+ 85.7% |
+
+
+ | 2020-08-31 |
+ 200130527 |
+ 200130527 |
+ → |
+ 200000212 |
+ 0.9885 |
+ +0.000329 |
+ 98.8% |
+
+
+ | 2020-09-30 |
+ 200130549 |
+ 200130549 |
+ → |
+ 200126372 |
+ 0.3483 |
+ +0.000139 |
+ 65.6% |
+
+
+ | 2020-09-30 |
+ 365376 |
+ 348454 |
+ → |
+ 13463 |
+ 0.1010 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2020-09-30 |
+ 366024 |
+ 365922 |
+ → |
+ 422737 |
+ 0.0058 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2020-09-30 |
+ 416078 |
+ 416078 |
+ → |
+ 416048 |
+ 0.8862 |
+ +0.000007 |
+ 77.8% |
+
+
+ | 2020-09-30 |
+ 200130528 |
+ 200130528 |
+ → |
+ 249690 |
+ 0.1937 |
+ +0.000021 |
+ 31.8% |
+
+
+ | 2020-09-30 |
+ 200127360 |
+ 200127360 |
+ → |
+ 200014368 |
+ 0.5380 |
+ +0.000356 |
+ 53.8% |
+
+
+ | 2020-10-31 |
+ 200130697 |
+ 200130697 |
+ → |
+ 366506 |
+ 0.7994 |
+ +0.001990 |
+ 99.9% |
+
+
+ | 2020-10-31 |
+ 200127478 |
+ 200127478 |
+ → |
+ 200039765 |
+ 0.2244 |
+ +0.000006 |
+ 9.2% |
+
+
+ | 2020-10-31 |
+ 200128854 |
+ 200130599 |
+ → |
+ 200130494 |
+ 0.0105 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2020-11-30 |
+ 422554 |
+ 422554 |
+ → |
+ 365429 |
+ 0.1349 |
+ +0.000176 |
+ 32.7% |
+
+
+ | 2020-11-30 |
+ 200130719 |
+ 200130719 |
+ → |
+ 200001413 |
+ 0.4541 |
+ +0.000221 |
+ 91.0% |
+
+
+ | 2020-11-30 |
+ 200102197 |
+ 200127555 |
+ → |
+ 62126 |
+ 0.0841 |
+ +0.000005 |
+ 20.0% |
+
+
+ | 2020-11-30 |
+ 200130688 |
+ 200130688 |
+ → |
+ 417146 |
+ 0.8013 |
+ +0.000409 |
+ 80.0% |
+
+
+ | 2020-11-30 |
+ 200127743 |
+ 200127385 |
+ → |
+ 292594 |
+ 0.0365 |
+ +0.000111 |
+ 12.0% |
+
+
+ | 2020-11-30 |
+ 200130684 |
+ 404921 |
+ → |
+ 405772 |
+ 0.9440 |
+ +0.000004 |
+ 100.0% |
+
+
+ | 2020-12-31 |
+ 200130690 |
+ 200130690 |
+ → |
+ 200127638 |
+ 0.7655 |
+ +0.000149 |
+ 91.4% |
+
+
+ | 2020-12-31 |
+ 200130507 |
+ 200130542 |
+ → |
+ 200130503 |
+ 0.0828 |
+ +0.000016 |
+ 27.1% |
+
+
+ | 2020-12-31 |
+ 200130842 |
+ 200130842 |
+ → |
+ 200130426 |
+ 1.0000 |
+ +0.000129 |
+ 100.0% |
+
+
+ | 2020-12-31 |
+ 200130665 |
+ 200130665 |
+ → |
+ 200130598 |
+ 0.6485 |
+ +0.001086 |
+ 96.0% |
+
+
+ | 2020-12-31 |
+ 200127343 |
+ 365990 |
+ → |
+ 200001942 |
+ 0.3135 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2020-12-31 |
+ 200130585 |
+ 200130585 |
+ → |
+ 200127813 |
+ 0.2576 |
+ +0.000388 |
+ 46.7% |
+
+
+ | 2020-12-31 |
+ 200130583 |
+ 200130583 |
+ → |
+ 200127479 |
+ 0.4699 |
+ +0.000042 |
+ 66.7% |
+
+
+ | 2021-01-31 |
+ 200127272 |
+ 200127813 |
+ → |
+ 365348 |
+ 0.3428 |
+ +0.000064 |
+ 23.4% |
+
+
+ | 2021-01-31 |
+ 200130903 |
+ 200130903 |
+ → |
+ 364977 |
+ 0.3448 |
+ +0.000177 |
+ 100.0% |
+
+
+ | 2021-01-31 |
+ 366024 |
+ 62126 |
+ → |
+ 365922 |
+ 0.0928 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2021-01-31 |
+ 200130855 |
+ 200130855 |
+ → |
+ 422600 |
+ 0.4995 |
+ +0.001048 |
+ 99.9% |
+
+
+ | 2021-01-31 |
+ 200130892 |
+ 365922 |
+ → |
+ 200127531 |
+ 0.1319 |
+ +0.000439 |
+ 42.2% |
+
+
+ | 2021-01-31 |
+ Private Client |
+ Private Client |
+ → |
+ 366419 |
+ 0.0240 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2021-02-28 |
+ 200127764 |
+ 200127764 |
+ → |
+ 200101614 |
+ 0.1127 |
+ +0.000030 |
+ 2.1% |
+
+
+ | 2021-02-28 |
+ 200130892 |
+ 200130892 |
+ → |
+ 365922 |
+ 0.5500 |
+ +0.000647 |
+ 44.9% |
+
+
+ | 2021-02-28 |
+ 307388 |
+ 200127531 |
+ → |
+ 200071075 |
+ 0.0570 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2021-03-31 |
+ 200127350 |
+ 200127350 |
+ → |
+ 200127335 |
+ 0.1628 |
+ +0.000003 |
+ 37.5% |
+
+
+ | 2021-03-31 |
+ 200127367 |
+ 200127367 |
+ → |
+ 200000407 |
+ 0.2393 |
+ +0.000077 |
+ 72.0% |
+
+
+ | 2021-03-31 |
+ 200130977 |
+ 200130977 |
+ → |
+ 200062882 |
+ 0.1316 |
+ +0.000152 |
+ 39.6% |
+
+
+ | 2021-03-31 |
+ 200130684 |
+ 405772 |
+ → |
+ 404921 |
+ 0.8336 |
+ +0.000002 |
+ 50.0% |
+
+
+ | 2021-04-30 |
+ 200127268 |
+ 200127268 |
+ → |
+ 200127272 |
+ 0.3098 |
+ +0.000101 |
+ 41.4% |
+
+
+ | 2021-04-30 |
+ 200131052 |
+ 200131052 |
+ → |
+ 200130788 |
+ 0.8768 |
+ +0.000307 |
+ 87.5% |
+
+
+ | 2021-04-30 |
+ 365368 |
+ 365368 |
+ → |
+ 366422 |
+ 0.2554 |
+ +0.000058 |
+ 79.5% |
+
+
+ | 2021-04-30 |
+ 200131056 |
+ 200131056 |
+ → |
+ 411674 |
+ 0.2280 |
+ +0.000014 |
+ 43.8% |
+
+
+ | 2021-05-31 |
+ 200127272 |
+ 200127272 |
+ → |
+ 200127813 |
+ 0.1389 |
+ +0.000111 |
+ 16.7% |
+
+
+ | 2021-05-31 |
+ 200131082 |
+ 200131082 |
+ → |
+ 200130927 |
+ 0.1194 |
+ +0.000047 |
+ 12.0% |
+
+
+ | 2021-05-31 |
+ 419789 |
+ 419789 |
+ → |
+ 200130883 |
+ 0.6666 |
+ +0.000009 |
+ 100.0% |
+
+
+ | 2021-05-31 |
+ 365127 |
+ 365127 |
+ → |
+ 200130805 |
+ 0.0442 |
+ +0.000132 |
+ 11.7% |
+
+
+ | 2021-05-31 |
+ 200131081 |
+ 200131081 |
+ → |
+ 200130419 |
+ 0.0072 |
+ +0.000006 |
+ 1.6% |
+
+
+ | 2021-06-30 |
+ 200127343 |
+ 200127343 |
+ → |
+ 365990 |
+ 0.1499 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2021-06-30 |
+ 200130684 |
+ 366005 |
+ → |
+ 405772 |
+ 0.0317 |
+ +0.000001 |
+ 2.1% |
+
+
+ | 2021-06-30 |
+ 365376 |
+ 13463 |
+ → |
+ 348454 |
+ 0.1185 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2021-06-30 |
+ 200131386 |
+ 200131386 |
+ → |
+ 200127345 |
+ 0.1409 |
+ +0.000059 |
+ 22.1% |
+
+
+ | 2021-07-31 |
+ 365376 |
+ 365376 |
+ → |
+ 13463 |
+ 0.2041 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2021-07-31 |
+ 366602 |
+ 366602 |
+ → |
+ 200002162 |
+ 0.3394 |
+ +0.000240 |
+ 82.5% |
+
+
+ | 2021-08-31 |
+ 366559 |
+ 366559 |
+ → |
+ 62013 |
+ 0.0263 |
+ +0.000067 |
+ 6.9% |
+
+
+ | 2021-08-31 |
+ 200130507 |
+ 200130507 |
+ → |
+ 200130542 |
+ 0.7661 |
+ +0.000057 |
+ 89.1% |
+
+
+ | 2021-08-31 |
+ 200129815 |
+ 200129815 |
+ → |
+ 200127308 |
+ 0.1151 |
+ +0.000006 |
+ 37.5% |
+
+
+ | 2021-08-31 |
+ 200126526 |
+ 200126526 |
+ → |
+ 200126647 |
+ 0.9772 |
+ +0.000279 |
+ 97.5% |
+
+
+ | 2021-08-31 |
+ 366470 |
+ 366470 |
+ → |
+ 64043 |
+ 0.3384 |
+ +0.003377 |
+ 55.0% |
+
+
+ | 2021-08-31 |
+ 200131303 |
+ 200127496 |
+ → |
+ 366446 |
+ 0.0455 |
+ +0.000067 |
+ 14.9% |
+
+
+ | 2021-08-31 |
+ 200102151 |
+ 200102151 |
+ → |
+ 364918 |
+ 0.9273 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2021-08-31 |
+ 365328 |
+ 365328 |
+ → |
+ 365512 |
+ 0.0907 |
+ +0.000018 |
+ 25.7% |
+
+
+ | 2021-08-31 |
+ 200055274 |
+ 200127325 |
+ → |
+ 200127493 |
+ 0.2314 |
+ +0.000010 |
+ 37.0% |
+
+
+ | 2021-08-31 |
+ 365807 |
+ 365807 |
+ → |
+ 200010448 |
+ 0.0868 |
+ +0.000081 |
+ 26.9% |
+
+
+ | 2021-08-31 |
+ 364929 |
+ 364929 |
+ → |
+ 364697 |
+ 0.0104 |
+ +0.000443 |
+ 3.4% |
+
+
+ | 2021-08-31 |
+ 418961 |
+ 418961 |
+ → |
+ 200101918 |
+ 0.0081 |
+ +0.000269 |
+ 2.6% |
+
+
+ | 2021-08-31 |
+ 200128854 |
+ 200128854 |
+ → |
+ 200130599 |
+ 0.0119 |
+ +0.000006 |
+ 3.2% |
+
+
+ | 2021-08-31 |
+ 365377 |
+ 365377 |
+ → |
+ 366540 |
+ 0.0903 |
+ +0.000734 |
+ 24.1% |
+
+
+ | 2021-08-31 |
+ 420350 |
+ 420350 |
+ → |
+ 67003 |
+ 0.0228 |
+ +0.001181 |
+ 4.7% |
+
+
+ | 2021-08-31 |
+ 365266 |
+ 365953 |
+ → |
+ 200085616 |
+ 0.2355 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2021-08-31 |
+ 200096331 |
+ 348454 |
+ → |
+ 365953 |
+ 0.0027 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2021-08-31 |
+ 200131301 |
+ 200131301 |
+ → |
+ 365770 |
+ 1.0000 |
+ +0.000186 |
+ 100.0% |
+
+
+ | 2021-08-31 |
+ 200127814 |
+ 214583 |
+ → |
+ 200001747 |
+ 0.0110 |
+ +0.000008 |
+ 2.4% |
+
+
+ | 2021-08-31 |
+ 200130841 |
+ 200130841 |
+ → |
+ 200130819 |
+ 0.2392 |
+ +0.000002 |
+ 50.0% |
+
+
+ | 2021-08-31 |
+ 365236 |
+ 200127644 |
+ → |
+ 67004 |
+ 0.0167 |
+ +0.000005 |
+ 4.0% |
+
+
+ | 2021-08-31 |
+ 366131 |
+ 366131 |
+ → |
+ 200127462 |
+ 0.3037 |
+ +0.000029 |
+ 76.3% |
+
+
+ | 2021-08-31 |
+ 422576 |
+ 422576 |
+ → |
+ 418897 |
+ 0.0545 |
+ +0.000120 |
+ 17.2% |
+
+
+ | 2021-08-31 |
+ 364999 |
+ 364999 |
+ → |
+ 200127899 |
+ 0.0216 |
+ +0.000217 |
+ 7.1% |
+
+
+ | 2021-08-31 |
+ 200081805 |
+ 200081805 |
+ → |
+ 200080573 |
+ 0.9740 |
+ +0.000244 |
+ 97.2% |
+
+
+ | 2021-08-31 |
+ 200059378 |
+ 200059378 |
+ → |
+ 364740 |
+ 0.0235 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2021-08-31 |
+ 366386 |
+ 366386 |
+ → |
+ 366392 |
+ 0.9276 |
+ +0.000012 |
+ 92.3% |
+
+
+ | 2021-08-31 |
+ 365241 |
+ 365241 |
+ → |
+ 365137 |
+ 0.9965 |
+ +0.000226 |
+ 100.0% |
+
+
+ | 2021-08-31 |
+ 200096001 |
+ 200096001 |
+ → |
+ 418483 |
+ 0.0522 |
+ +0.000069 |
+ 12.6% |
+
+
+ | 2021-08-31 |
+ 365242 |
+ 365242 |
+ → |
+ 200130920 |
+ 0.1120 |
+ +0.000684 |
+ 35.9% |
+
+
+ | 2021-08-31 |
+ 200001942 |
+ 200001942 |
+ → |
+ 200035830 |
+ 0.0702 |
+ +0.000115 |
+ 21.9% |
+
+
+ | 2021-08-31 |
+ 200131294 |
+ 200008561 |
+ → |
+ 417072 |
+ 0.3080 |
+ +0.000276 |
+ 92.6% |
+
+
+ | 2021-09-30 |
+ 200131309 |
+ 200131309 |
+ → |
+ 200078289 |
+ 0.1634 |
+ +0.000483 |
+ 43.6% |
+
+
+ | 2021-09-30 |
+ 200127814 |
+ 200127531 |
+ → |
+ 214583 |
+ 0.2437 |
+ +0.000326 |
+ 41.6% |
+
+
+ | 2021-09-30 |
+ 307388 |
+ 64043 |
+ → |
+ 200127531 |
+ 0.2385 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2021-09-30 |
+ 200127757 |
+ 200127757 |
+ → |
+ 200096386 |
+ 0.0217 |
+ +0.000007 |
+ 5.6% |
+
+
+ | 2021-09-30 |
+ 200131343 |
+ 200131343 |
+ → |
+ 200130990 |
+ 0.8852 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2021-09-30 |
+ 200131340 |
+ 200131340 |
+ → |
+ 343121 |
+ 0.5126 |
+ +0.000304 |
+ 52.1% |
+
+
+ | 2021-09-30 |
+ 365304 |
+ 62013 |
+ → |
+ 365236 |
+ 0.8954 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2021-09-30 |
+ 200131303 |
+ 200131303 |
+ → |
+ 200127496 |
+ 0.9844 |
+ +0.000445 |
+ 97.2% |
+
+
+ | 2021-09-30 |
+ 200131325 |
+ 200131325 |
+ → |
+ 352958 |
+ 0.8901 |
+ +0.000877 |
+ 98.9% |
+
+
+ | 2021-10-31 |
+ 365304 |
+ 365236 |
+ → |
+ 62013 |
+ 0.8381 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2021-10-31 |
+ 200131387 |
+ 200131387 |
+ → |
+ 200126345 |
+ 0.1625 |
+ +0.000012 |
+ 48.0% |
+
+
+ | 2021-11-30 |
+ 200131294 |
+ 420239 |
+ → |
+ 200008561 |
+ 0.3226 |
+ +0.000150 |
+ 48.7% |
+
+
+ | 2021-11-30 |
+ 365304 |
+ 62013 |
+ → |
+ 365236 |
+ 0.8031 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2021-11-30 |
+ 200131449 |
+ 200131449 |
+ → |
+ 419090 |
+ 0.6422 |
+ +0.000170 |
+ 92.9% |
+
+
+ | 2021-11-30 |
+ 200130684 |
+ 200130684 |
+ → |
+ 366005 |
+ 0.2861 |
+ +0.000040 |
+ 32.0% |
+
+
+ | 2021-12-31 |
+ 200137353 |
+ 200131521 |
+ → |
+ 200086036 |
+ 0.1795 |
+ +0.000043 |
+ 35.8% |
+
+
+ | 2021-12-31 |
+ 307388 |
+ 67004 |
+ → |
+ 64043 |
+ 0.0979 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2021-12-31 |
+ 200131534 |
+ 200131534 |
+ → |
+ 200127323 |
+ 0.7073 |
+ +0.000122 |
+ 77.2% |
+
+
+ | 2021-12-31 |
+ 365304 |
+ 365236 |
+ → |
+ 62013 |
+ 0.7733 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2022-01-31 |
+ 200131580 |
+ 200131580 |
+ → |
+ 200071076 |
+ 0.9941 |
+ +0.003205 |
+ 99.4% |
+
+
+ | 2022-01-31 |
+ 200131579 |
+ 200131579 |
+ → |
+ 200127178 |
+ 0.4803 |
+ +0.000166 |
+ 96.5% |
+
+
+ | 2022-01-31 |
+ 200131543 |
+ 200131543 |
+ → |
+ 200101971 |
+ 0.0011 |
+ +0.000001 |
+ 0.1% |
+
+
+ | 2022-01-31 |
+ 365304 |
+ 62013 |
+ → |
+ 365236 |
+ 0.7438 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2022-02-28 |
+ 200127528 |
+ 364740 |
+ → |
+ 200054816 |
+ 0.1777 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2022-02-28 |
+ 365304 |
+ 365236 |
+ → |
+ 62013 |
+ 0.7871 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2022-03-31 |
+ 366024 |
+ 64043 |
+ → |
+ 62126 |
+ 0.2343 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2022-03-31 |
+ 200131651 |
+ 200124661 |
+ → |
+ 200126261 |
+ 0.9184 |
+ +0.000024 |
+ 96.0% |
+
+
+ | 2022-03-31 |
+ 200131648 |
+ 200131648 |
+ → |
+ 200130950 |
+ 0.5920 |
+ +0.000125 |
+ 59.2% |
+
+
+ | 2022-04-30 |
+ 200131722 |
+ 200010610 |
+ → |
+ 365394 |
+ 0.0141 |
+ +0.000048 |
+ 2.5% |
+
+
+ | 2022-04-30 |
+ 200131750 |
+ 200131750 |
+ → |
+ 365216 |
+ 0.6573 |
+ +0.002151 |
+ 65.7% |
+
+
+ | 2022-04-30 |
+ 365304 |
+ 62013 |
+ → |
+ 365236 |
+ 0.7640 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2022-04-30 |
+ 200131294 |
+ 200131294 |
+ → |
+ 420239 |
+ 0.1730 |
+ +0.000114 |
+ 9.6% |
+
+
+ | 2022-04-30 |
+ 200126380 |
+ 200126380 |
+ → |
+ 200101894 |
+ 0.6341 |
+ +0.001298 |
+ 50.7% |
+
+
+ | 2022-05-31 |
+ 366024 |
+ 62126 |
+ → |
+ 64043 |
+ 0.2692 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2022-05-31 |
+ 200131777 |
+ 200131777 |
+ → |
+ 422345 |
+ 0.9973 |
+ +0.000432 |
+ 99.8% |
+
+
+ | 2022-05-31 |
+ 200131771 |
+ 200131771 |
+ → |
+ 200127127 |
+ 0.0755 |
+ +0.000050 |
+ 15.2% |
+
+
+ | 2022-05-31 |
+ 200131763 |
+ 200131763 |
+ → |
+ 200127706 |
+ 0.9153 |
+ +0.000848 |
+ 91.5% |
+
+
+ | 2022-05-31 |
+ 365304 |
+ 67003 |
+ → |
+ 62013 |
+ 0.3815 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2022-06-30 |
+ 200127175 |
+ 200127175 |
+ → |
+ 200015699 |
+ 0.1282 |
+ +0.000004 |
+ 23.5% |
+
+
+ | 2022-06-30 |
+ 200131722 |
+ 200131722 |
+ → |
+ 200010610 |
+ 0.3899 |
+ +0.001927 |
+ 49.8% |
+
+
+ | 2022-06-30 |
+ 200127516 |
+ 200127516 |
+ → |
+ 200136637 |
+ 0.0398 |
+ +0.000001 |
+ 0.2% |
+
+
+ | 2022-06-30 |
+ 200127201 |
+ 200127628 |
+ → |
+ 200101961 |
+ 0.1361 |
+ +0.000003 |
+ 27.3% |
+
+
+ | 2022-06-30 |
+ 200131804 |
+ 200131804 |
+ → |
+ 365490 |
+ 0.0919 |
+ +0.000104 |
+ 27.5% |
+
+
+ | 2022-07-31 |
+ 365236 |
+ 365236 |
+ → |
+ 200127644 |
+ 0.1597 |
+ +0.000023 |
+ 5.9% |
+
+
+ | 2022-07-31 |
+ 200131651 |
+ 200126261 |
+ → |
+ 200124661 |
+ 0.6659 |
+ +0.000033 |
+ 68.8% |
+
+
+ | 2022-07-31 |
+ 366024 |
+ 64043 |
+ → |
+ 62126 |
+ 0.2343 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2022-07-31 |
+ 200127495 |
+ 200127495 |
+ → |
+ 200129085 |
+ 0.3333 |
+ +0.000001 |
+ 100.0% |
+
+
+ | 2022-08-31 |
+ 200136597 |
+ 200136597 |
+ → |
+ 200130791 |
+ 0.4507 |
+ +0.000404 |
+ 90.0% |
+
+
+ | 2022-08-31 |
+ 200127528 |
+ 200054816 |
+ → |
+ 364740 |
+ 0.0245 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2022-08-31 |
+ 200127479 |
+ 200127814 |
+ → |
+ 366024 |
+ 0.0571 |
+ +0.000004 |
+ 12.9% |
+
+
+ | 2022-08-31 |
+ 200131651 |
+ 200131651 |
+ → |
+ 200126261 |
+ 0.4859 |
+ +0.000022 |
+ 33.3% |
+
+
+ | 2022-09-30 |
+ 200137356 |
+ 366024 |
+ → |
+ 200127375 |
+ 0.1991 |
+ +0.000084 |
+ 39.8% |
+
+
+ | 2022-09-30 |
+ 200137354 |
+ 200137354 |
+ → |
+ 200009689 |
+ 0.0220 |
+ +0.000020 |
+ 4.5% |
+
+
+ | 2022-09-30 |
+ 200137477 |
+ 200085616 |
+ → |
+ 365836 |
+ 0.4469 |
+ +0.000033 |
+ 62.3% |
+
+
+ | 2022-09-30 |
+ 200127479 |
+ 200127375 |
+ → |
+ 200127814 |
+ 0.0937 |
+ +0.000029 |
+ 23.0% |
+
+
+ | 2022-09-30 |
+ 200137360 |
+ 200137360 |
+ → |
+ 64003 |
+ 0.1202 |
+ +0.000845 |
+ 28.2% |
+
+
+ | 2022-09-30 |
+ 200102197 |
+ 200102197 |
+ → |
+ 200127555 |
+ 0.1988 |
+ +0.000004 |
+ 4.6% |
+
+
+ | 2022-09-30 |
+ 200131736 |
+ 200131736 |
+ → |
+ 200130879 |
+ 0.4435 |
+ +0.000021 |
+ 72.4% |
+
+
+ | 2022-09-30 |
+ 365304 |
+ 62013 |
+ → |
+ 67003 |
+ 0.3493 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2022-09-30 |
+ 200137361 |
+ 200137361 |
+ → |
+ 201113 |
+ 0.6549 |
+ +0.000249 |
+ 67.1% |
+
+
+ | 2022-10-31 |
+ 200137477 |
+ 200137477 |
+ → |
+ 200085616 |
+ 0.0993 |
+ +0.000032 |
+ 19.3% |
+
+
+ | 2022-10-31 |
+ 200137628 |
+ 64003 |
+ → |
+ 418992 |
+ 0.3844 |
+ +0.000869 |
+ 50.5% |
+
+
+ | 2022-10-31 |
+ 200002583 |
+ 200002583 |
+ → |
+ 200033104 |
+ 0.1897 |
+ +0.000005 |
+ 20.0% |
+
+
+ | 2022-10-31 |
+ 200137356 |
+ 67003 |
+ → |
+ 366024 |
+ 0.1374 |
+ +0.000080 |
+ 14.3% |
+
+
+ | 2022-10-31 |
+ 200137633 |
+ 200137633 |
+ → |
+ 200129897 |
+ 0.1259 |
+ +0.000001 |
+ 25.0% |
+
+
+ | 2022-10-31 |
+ 200137467 |
+ 200127262 |
+ → |
+ 200127256 |
+ 0.3748 |
+ +0.000077 |
+ 64.7% |
+
+
+ | 2022-10-31 |
+ 200127872 |
+ 200127872 |
+ → |
+ 200131780 |
+ 0.0603 |
+ +0.000001 |
+ 8.3% |
+
+
+ | 2022-11-30 |
+ 200137459 |
+ 200127813 |
+ → |
+ 365647 |
+ 0.0719 |
+ +0.000039 |
+ 23.2% |
+
+
+ | 2022-11-30 |
+ 200127528 |
+ 200127905 |
+ → |
+ 200054816 |
+ 0.1211 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2022-11-30 |
+ 200127127 |
+ 200127156 |
+ → |
+ 200127255 |
+ 0.1045 |
+ +0.000005 |
+ 23.8% |
+
+
+ | 2022-11-30 |
+ 200127627 |
+ 200127627 |
+ → |
+ 200131345 |
+ 0.3162 |
+ +0.000125 |
+ 26.5% |
+
+
+ | 2022-12-31 |
+ 200137459 |
+ 200137459 |
+ → |
+ 200127813 |
+ 0.1151 |
+ +0.000143 |
+ 25.5% |
+
+
+ | 2022-12-31 |
+ 200137353 |
+ 200137353 |
+ → |
+ 200131521 |
+ 0.7696 |
+ +0.000126 |
+ 72.0% |
+
+
+ | 2022-12-31 |
+ 200002076 |
+ 200002076 |
+ → |
+ 200001941 |
+ 0.0157 |
+ +0.000072 |
+ 4.7% |
+
+
+ | 2022-12-31 |
+ 200137619 |
+ 200137619 |
+ → |
+ 200127264 |
+ 0.1563 |
+ +0.000146 |
+ 32.7% |
+
+
+ | 2022-12-31 |
+ 200137467 |
+ 200137467 |
+ → |
+ 200127262 |
+ 0.2359 |
+ +0.000029 |
+ 10.7% |
+
+
+ | 2022-12-31 |
+ 200127479 |
+ 200127479 |
+ → |
+ 200127375 |
+ 0.5167 |
+ +0.000096 |
+ 55.8% |
+
+
+ | 2022-12-31 |
+ 200131477 |
+ 200131477 |
+ → |
+ 200127390 |
+ 0.2801 |
+ +0.000280 |
+ 84.1% |
+
+
+ | 2022-12-31 |
+ 200137356 |
+ 200137356 |
+ → |
+ 67003 |
+ 0.1234 |
+ +0.000415 |
+ 21.7% |
+
+
+ | 2023-01-31 |
+ 366024 |
+ 62126 |
+ → |
+ 64043 |
+ 0.2692 |
+ +0.000001 |
+ 5.6% |
+
+
+ | 2023-01-31 |
+ 200137759 |
+ 418897 |
+ → |
+ 419336 |
+ 0.1734 |
+ +0.000065 |
+ 41.4% |
+
+
+ | 2023-01-31 |
+ 200058108 |
+ 200058108 |
+ → |
+ 312478 |
+ 0.8098 |
+ +0.007694 |
+ 82.4% |
+
+
+ | 2023-01-31 |
+ 200127528 |
+ 364559 |
+ → |
+ 200127905 |
+ 0.3088 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2023-02-28 |
+ 365304 |
+ 67003 |
+ → |
+ 62013 |
+ 0.3815 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2023-02-28 |
+ 200127813 |
+ 200127555 |
+ → |
+ 200128174 |
+ 0.2096 |
+ +0.000087 |
+ 52.4% |
+
+
+ | 2023-03-31 |
+ 200127528 |
+ 200065564 |
+ → |
+ 364559 |
+ 0.3023 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2023-03-31 |
+ 200127644 |
+ 64043 |
+ → |
+ 62087 |
+ 0.3063 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2023-03-31 |
+ 307388 |
+ 418992 |
+ → |
+ 67004 |
+ 0.2582 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2023-03-31 |
+ 200137828 |
+ 200137828 |
+ → |
+ 200000252 |
+ 0.8399 |
+ +0.001330 |
+ 99.8% |
+
+
+ | 2023-03-31 |
+ 200127813 |
+ 200128174 |
+ → |
+ 200127555 |
+ 0.1733 |
+ +0.000045 |
+ 11.8% |
+
+
+ | 2023-04-30 |
+ 200137851 |
+ 200137851 |
+ → |
+ 365500 |
+ 0.7135 |
+ +0.000125 |
+ 96.9% |
+
+
+ | 2023-04-30 |
+ 365304 |
+ 62013 |
+ → |
+ 67003 |
+ 0.3493 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2023-04-30 |
+ 200127127 |
+ 200127127 |
+ → |
+ 200127156 |
+ 0.3137 |
+ +0.000004 |
+ 6.7% |
+
+
+ | 2023-04-30 |
+ 200127331 |
+ 366422 |
+ → |
+ 366408 |
+ 0.3079 |
+ +0.000020 |
+ 52.6% |
+
+
+ | 2023-04-30 |
+ 200127813 |
+ 200127813 |
+ → |
+ 200128174 |
+ 0.3797 |
+ +0.000268 |
+ 51.0% |
+
+
+ | 2023-04-30 |
+ 365266 |
+ 200101961 |
+ → |
+ 365953 |
+ 0.1320 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2023-05-31 |
+ 366024 |
+ 62087 |
+ → |
+ 62126 |
+ 0.3851 |
+ +0.000007 |
+ 15.6% |
+
+
+ | 2023-05-31 |
+ 307388 |
+ 67004 |
+ → |
+ 418992 |
+ 0.2556 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2023-05-31 |
+ 200137928 |
+ 200137928 |
+ → |
+ 200090160 |
+ 1.0000 |
+ +0.000317 |
+ 100.0% |
+
+
+ | 2023-05-31 |
+ 200032028 |
+ 200032028 |
+ → |
+ 200137640 |
+ 0.0352 |
+ +0.000002 |
+ 1.3% |
+
+
+ | 2023-05-31 |
+ 200127579 |
+ 200137796 |
+ → |
+ 200127270 |
+ 0.0381 |
+ +0.000020 |
+ 10.5% |
+
+
+ | 2023-06-30 |
+ 200127201 |
+ 200127201 |
+ → |
+ 200127628 |
+ 0.1313 |
+ +0.000014 |
+ 6.6% |
+
+
+ | 2023-06-30 |
+ 307388 |
+ 418992 |
+ → |
+ 67004 |
+ 0.2582 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2023-06-30 |
+ 200137759 |
+ 200137759 |
+ → |
+ 418897 |
+ 0.5032 |
+ +0.000261 |
+ 52.9% |
+
+
+ | 2023-07-31 |
+ 200137992 |
+ 200137992 |
+ → |
+ 200002211 |
+ 0.9927 |
+ +0.000146 |
+ 99.3% |
+
+
+ | 2023-08-31 |
+ 365266 |
+ 200131817 |
+ → |
+ 200101961 |
+ 0.0443 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2023-09-30 |
+ 200138615 |
+ 366582 |
+ → |
+ 200102255 |
+ 0.0367 |
+ +0.000035 |
+ 11.1% |
+
+
+ | 2023-09-30 |
+ 364697 |
+ 364697 |
+ → |
+ 200127655 |
+ 0.2542 |
+ +0.000037 |
+ 25.5% |
+
+
+ | 2023-09-30 |
+ 200127814 |
+ 200127814 |
+ → |
+ 200127531 |
+ 0.2449 |
+ +0.001199 |
+ 59.9% |
+
+
+ | 2023-09-30 |
+ 200127410 |
+ 62126 |
+ → |
+ 366582 |
+ 0.1667 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2023-09-30 |
+ 200127308 |
+ 200127308 |
+ → |
+ 200127307 |
+ 0.2422 |
+ +0.000022 |
+ 9.6% |
+
+
+ | 2023-09-30 |
+ 307388 |
+ 67004 |
+ → |
+ 418992 |
+ 0.2556 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2023-10-31 |
+ 365304 |
+ 67003 |
+ → |
+ 62013 |
+ 0.3815 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2023-10-31 |
+ 200137500 |
+ 200137500 |
+ → |
+ 405168 |
+ 0.0327 |
+ +0.000002 |
+ 7.1% |
+
+
+ | 2023-10-31 |
+ 200138625 |
+ 365647 |
+ → |
+ 422840 |
+ 0.0939 |
+ +0.000045 |
+ 25.1% |
+
+
+ | 2023-10-31 |
+ 200137824 |
+ 200082952 |
+ → |
+ 200127712 |
+ 0.1777 |
+ +0.000001 |
+ 50.0% |
+
+
+ | 2023-10-31 |
+ 419541 |
+ 419541 |
+ → |
+ 200130525 |
+ 0.3261 |
+ +0.000031 |
+ 31.3% |
+
+
+ | 2023-10-31 |
+ 307388 |
+ 418992 |
+ → |
+ 67004 |
+ 0.2582 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2023-10-31 |
+ 366024 |
+ 366024 |
+ → |
+ 62087 |
+ 0.1728 |
+ +0.000009 |
+ 9.1% |
+
+
+ | 2023-10-31 |
+ 200138664 |
+ 200138664 |
+ → |
+ 200127123 |
+ 0.2089 |
+ +0.000102 |
+ 54.0% |
+
+
+ | 2023-10-31 |
+ 200138669 |
+ 200138669 |
+ → |
+ 200137935 |
+ 0.7290 |
+ +0.000065 |
+ 73.0% |
+
+
+ | 2023-10-31 |
+ 200138655 |
+ 200138655 |
+ → |
+ 200002217 |
+ 0.9787 |
+ +0.000186 |
+ 97.9% |
+
+
+ | 2023-11-30 |
+ 200128473 |
+ 200126734 |
+ → |
+ 200131364 |
+ 0.1824 |
+ +0.000002 |
+ 66.7% |
+
+
+ | 2023-11-30 |
+ 200131649 |
+ 200032849 |
+ → |
+ 200130996 |
+ 0.2982 |
+ +0.001043 |
+ 59.6% |
+
+
+ | 2023-11-30 |
+ 307388 |
+ 307388 |
+ → |
+ 418992 |
+ 0.0975 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2023-11-30 |
+ 200137824 |
+ 200137824 |
+ → |
+ 200082952 |
+ 0.1339 |
+ +0.000002 |
+ 18.2% |
+
+
+ | 2023-11-30 |
+ 200127555 |
+ 200127555 |
+ → |
+ 200127410 |
+ 0.2804 |
+ +0.000001 |
+ 4.8% |
+
+
+ | 2023-11-30 |
+ 200094954 |
+ 200094954 |
+ → |
+ 418840 |
+ 0.1587 |
+ +0.000025 |
+ 11.6% |
+
+
+ | 2023-11-30 |
+ 200127644 |
+ 200127531 |
+ → |
+ 64043 |
+ 0.0569 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2023-11-30 |
+ 200138687 |
+ 200138687 |
+ → |
+ 200131770 |
+ 0.3433 |
+ +0.000166 |
+ 68.6% |
+
+
+ | 2023-11-30 |
+ 200138615 |
+ 62013 |
+ → |
+ 366582 |
+ 0.1647 |
+ +0.000314 |
+ 42.8% |
+
+
+ | 2023-12-31 |
+ 200127634 |
+ 200127634 |
+ → |
+ 200127539 |
+ 0.8475 |
+ +0.000692 |
+ 99.7% |
+
+
+ | 2023-12-31 |
+ 200127731 |
+ 200127731 |
+ → |
+ 200127544 |
+ 0.9176 |
+ +0.000878 |
+ 91.8% |
+
+
+ | 2023-12-31 |
+ 200131649 |
+ 200131649 |
+ → |
+ 200032849 |
+ 0.1727 |
+ +0.001078 |
+ 21.3% |
+
+
+ | 2023-12-31 |
+ 200138953 |
+ 422690 |
+ → |
+ 200129546 |
+ 0.0681 |
+ +0.000023 |
+ 22.3% |
+
+
+ | 2023-12-31 |
+ 200138625 |
+ 200138625 |
+ → |
+ 365647 |
+ 0.8344 |
+ +0.000208 |
+ 96.3% |
+
+
+ | 2023-12-31 |
+ 366401 |
+ 366401 |
+ → |
+ 200001374 |
+ 0.2804 |
+ +0.000057 |
+ 31.0% |
+
+
+ | 2023-12-31 |
+ 200138892 |
+ 200138892 |
+ → |
+ 345837 |
+ 0.4929 |
+ +0.000205 |
+ 83.3% |
+
+
+ | 2023-12-31 |
+ 200130653 |
+ 200130653 |
+ → |
+ 200138589 |
+ 0.1951 |
+ +0.000091 |
+ 47.4% |
+
+
+ | 2023-12-31 |
+ 200127183 |
+ 200127183 |
+ → |
+ 200131795 |
+ 0.1122 |
+ +0.000021 |
+ 1.7% |
+
+
+ | 2023-12-31 |
+ 365304 |
+ 365304 |
+ → |
+ 67003 |
+ 0.0289 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2023-12-31 |
+ 200127331 |
+ 200127658 |
+ → |
+ 366422 |
+ 0.1907 |
+ +0.000051 |
+ 56.7% |
+
+
+ | 2024-01-31 |
+ 200127410 |
+ 200127410 |
+ → |
+ 62126 |
+ 0.1754 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2024-01-31 |
+ 200137628 |
+ 200137628 |
+ → |
+ 64003 |
+ 0.1350 |
+ +0.001529 |
+ 32.6% |
+
+
+ | 2024-01-31 |
+ 200138953 |
+ 200138953 |
+ → |
+ 422690 |
+ 0.4771 |
+ +0.000093 |
+ 86.1% |
+
+
+ | 2024-01-31 |
+ 200096331 |
+ 200096331 |
+ → |
+ 348454 |
+ 0.0862 |
+ +0.000079 |
+ 23.1% |
+
+
+ | 2024-01-31 |
+ 200138950 |
+ 200127330 |
+ → |
+ 200127640 |
+ 0.1228 |
+ +0.000004 |
+ 25.0% |
+
+
+ | 2024-01-31 |
+ 200138615 |
+ 200131795 |
+ → |
+ 62013 |
+ 0.1388 |
+ +0.000028 |
+ 1.3% |
+
+
+ | 2024-02-29 |
+ 200138950 |
+ 200127640 |
+ → |
+ 200127330 |
+ 0.1460 |
+ +0.000011 |
+ 21.1% |
+
+
+ | 2024-02-29 |
+ 200127426 |
+ 200127426 |
+ → |
+ 200127438 |
+ 0.9569 |
+ +0.005181 |
+ 95.7% |
+
+
+ | 2024-02-29 |
+ 200002226 |
+ 200002226 |
+ → |
+ 422777 |
+ 0.2736 |
+ +0.000227 |
+ 54.8% |
+
+
+ | 2024-02-29 |
+ 200138615 |
+ 200138615 |
+ → |
+ 200131795 |
+ 0.8590 |
+ +0.001903 |
+ 77.5% |
+
+
+ | 2024-02-29 |
+ 200130743 |
+ 200130743 |
+ → |
+ 415661 |
+ 0.1939 |
+ +0.000044 |
+ 25.9% |
+
+
+ | 2024-03-31 |
+ 200129895 |
+ 200129895 |
+ → |
+ 200130664 |
+ 0.3357 |
+ +0.000259 |
+ 40.4% |
+
+
+ | 2024-03-31 |
+ 200138950 |
+ 200138950 |
+ → |
+ 200127640 |
+ 0.1773 |
+ +0.000047 |
+ 45.2% |
+
+
+ | 2024-03-31 |
+ 200055274 |
+ 200055274 |
+ → |
+ 200127325 |
+ 0.1495 |
+ +0.000006 |
+ 5.3% |
+
+
+ | 2024-03-31 |
+ 200127375 |
+ 200127375 |
+ → |
+ 200096387 |
+ 0.1458 |
+ +0.000125 |
+ 31.3% |
+
+
+ | 2024-03-31 |
+ 200127438 |
+ 200139011 |
+ → |
+ 200130526 |
+ 0.0977 |
+ +0.000032 |
+ 19.9% |
+
+
+ | 2024-03-31 |
+ 200127579 |
+ 200127579 |
+ → |
+ 200137796 |
+ 0.0521 |
+ +0.000118 |
+ 10.5% |
+
+
+ | 2024-04-30 |
+ 200139116 |
+ 200139116 |
+ → |
+ 200102242 |
+ 0.2708 |
+ +0.000093 |
+ 80.9% |
+
+
+ | 2024-04-30 |
+ 200069640 |
+ 200069640 |
+ → |
+ 419909 |
+ 0.1876 |
+ +0.000017 |
+ 25.0% |
+
+
+ | 2024-05-31 |
+ 200127438 |
+ 200127438 |
+ → |
+ 200139011 |
+ 0.0908 |
+ +0.000007 |
+ 0.6% |
+
+
+ | 2024-05-31 |
+ 200127554 |
+ 200051116 |
+ → |
+ 200130409 |
+ 0.1508 |
+ +0.000014 |
+ 36.8% |
+
+
+ | 2024-06-30 |
+ 200127743 |
+ 200127743 |
+ → |
+ 200127385 |
+ 0.9951 |
+ +0.001436 |
+ 96.0% |
+
+
+ | 2024-06-30 |
+ 200139226 |
+ 200139226 |
+ → |
+ 29000 |
+ 0.4129 |
+ +0.000077 |
+ 79.4% |
+
+
+ | 2024-07-31 |
+ 365266 |
+ 200002080 |
+ → |
+ 200131817 |
+ 0.2086 |
+ +0.000002 |
+ 40.0% |
+
+
+ | 2024-08-31 |
+ 200139311 |
+ 200139311 |
+ → |
+ 200130861 |
+ 0.5095 |
+ +0.000141 |
+ 50.9% |
+
+
+ | 2024-08-31 |
+ 200139319 |
+ 200139319 |
+ → |
+ 200127525 |
+ 0.9977 |
+ +0.003580 |
+ 99.8% |
+
+
+ | 2024-08-31 |
+ 200127644 |
+ 64043 |
+ → |
+ 200127531 |
+ 0.1984 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2024-09-30 |
+ 200130475 |
+ 200130475 |
+ → |
+ 200127769 |
+ 0.0463 |
+ +0.000021 |
+ 14.2% |
+
+
+ | 2024-09-30 |
+ 200128473 |
+ 200128473 |
+ → |
+ 200126734 |
+ 0.0043 |
+ +0.000003 |
+ 1.1% |
+
+
+ | 2024-09-30 |
+ 200139346 |
+ 200139346 |
+ → |
+ 200051015 |
+ 0.9444 |
+ +0.001522 |
+ 94.5% |
+
+
+ | 2024-09-30 |
+ 200137997 |
+ 200127531 |
+ → |
+ 62074 |
+ 0.0544 |
+ +0.000003 |
+ 14.3% |
+
+
+ | 2024-09-30 |
+ 200139333 |
+ 200139333 |
+ → |
+ 200126778 |
+ 0.3331 |
+ +0.000077 |
+ 100.0% |
+
+
+ | 2024-09-30 |
+ 200127554 |
+ 200127554 |
+ → |
+ 200051116 |
+ 0.0262 |
+ +0.000050 |
+ 6.2% |
+
+
+ | 2024-10-31 |
+ 200139398 |
+ 200139398 |
+ → |
+ 200130784 |
+ 0.4269 |
+ +0.000663 |
+ 42.7% |
+
+
+ | 2024-10-31 |
+ 200127644 |
+ 62074 |
+ → |
+ 64043 |
+ 0.3011 |
+ +0.000000 |
+ 0.0% |
+
+
+ | 2024-10-31 |
+ 200139375 |
+ 200139375 |
+ → |
+ 200127852 |
+ 0.3290 |
+ +0.000051 |
+ 32.7% |
+
+
+ | 2024-10-31 |
+ 200001835 |
+ 200001835 |
+ → |
+ 200138884 |
+ 0.1431 |
+ +0.000081 |
+ 32.0% |
+
+
+ | 2024-11-30 |
+ 200127644 |
+ 64043 |
+ → |
+ 62074 |
+ 0.4033 |
+ +0.000001 |
+ 33.3% |
+
+
+ | 2024-11-30 |
+ 200127190 |
+ 200127190 |
+ → |
+ 200127261 |
+ 0.0256 |
+ +0.000008 |
+ 2.2% |
+
+
+ | 2024-11-30 |
+ 200086037 |
+ 200086037 |
+ → |
+ 200080574 |
+ 0.3450 |
+ +0.000219 |
+ 68.9% |
+
+
+ | 2024-11-30 |
+ 200137830 |
+ 200137830 |
+ → |
+ 200131257 |
+ 1.0000 |
+ +0.001091 |
+ 100.0% |
+
+
+ | 2024-12-31 |
+ 365266 |
+ 200001849 |
+ → |
+ 200002080 |
+ 0.3748 |
+ +0.000004 |
+ 66.7% |
+
+
+ | 2024-12-31 |
+ 200127331 |
+ 200127331 |
+ → |
+ 200127658 |
+ 0.1647 |
+ +0.000087 |
+ 47.8% |
+
+
+ | 2024-12-31 |
+ 200139526 |
+ 200139163 |
+ → |
+ 200127670 |
+ 0.1145 |
+ +0.000022 |
+ 24.2% |
+
+
+ | 2024-12-31 |
+ 200137997 |
+ 200137997 |
+ → |
+ 200127531 |
+ 0.8900 |
+ +0.000022 |
+ 100.0% |
+
+
+ | 2024-12-31 |
+ 200131156 |
+ 200131156 |
+ → |
+ 200002295 |
+ 0.1208 |
+ +0.000021 |
+ 25.0% |
+
+
+ | 2024-12-31 |
+ 200138989 |
+ 200138989 |
+ → |
+ 200127528 |
+ 0.0705 |
+ +0.000073 |
+ 15.9% |
+
+
+ | 2024-12-31 |
+ 200139538 |
+ 200139538 |
+ → |
+ 200083692 |
+ 0.8030 |
+ +0.000140 |
+ 80.5% |
+
+
+ | 2024-12-31 |
+ 200139568 |
+ 200139568 |
+ → |
+ 200127359 |
+ 0.9986 |
+ +0.000343 |
+ 100.0% |
+
+
+ | 2025-01-31 |
+ 365266 |
+ 200002080 |
+ → |
+ 200001849 |
+ 0.2596 |
+ +0.000004 |
+ 44.4% |
+
+
+ | 2025-01-31 |
+ 200142168 |
+ 200142168 |
+ → |
+ 200139306 |
+ 0.0876 |
+ +0.000041 |
+ 8.9% |
+
+
+ | 2025-01-31 |
+ 200139526 |
+ 200139526 |
+ → |
+ 200139163 |
+ 0.2156 |
+ +0.000036 |
+ 23.5% |
+
+
+ | 2025-02-28 |
+ 200130818 |
+ 200130818 |
+ → |
+ 200129601 |
+ 0.2156 |
+ +0.000132 |
+ 21.6% |
+
+
+ | 2025-02-28 |
+ 200127345 |
+ 200127755 |
+ → |
+ 413496 |
+ 0.1770 |
+ +0.000022 |
+ 52.4% |
+
+
+ | 2025-03-31 |
+ 200142277 |
+ 200142277 |
+ → |
+ 200137885 |
+ 0.0617 |
+ +0.000112 |
+ 13.7% |
+
+
+ | 2025-03-31 |
+ 200127531 |
+ 200127531 |
+ → |
+ 200130724 |
+ 0.0081 |
+ +0.000143 |
+ 1.8% |
+
+
+ | 2025-03-31 |
+ 200127533 |
+ 200127533 |
+ → |
+ 67100 |
+ 0.1435 |
+ +0.000140 |
+ 48.0% |
+
+
+ | 2025-03-31 |
+ 200131175 |
+ 200131175 |
+ → |
+ 200098279 |
+ 0.2053 |
+ +0.000201 |
+ 41.0% |
+
+
+ | 2025-03-31 |
+ 200142241 |
+ 200142241 |
+ → |
+ 200131320 |
+ 0.1769 |
+ +0.000073 |
+ 35.3% |
+
+
+ | 2025-03-31 |
+ 200127644 |
+ 62074 |
+ → |
+ 64043 |
+ 0.3011 |
+ +0.000002 |
+ 15.4% |
+
+
+ | 2025-03-31 |
+ 200127528 |
+ 200127528 |
+ → |
+ 200065564 |
+ 0.0057 |
+ +0.000052 |
+ 1.6% |
+
+
+ | 2025-04-30 |
+ 200127703 |
+ 200127703 |
+ → |
+ 364544 |
+ 0.0895 |
+ +0.000067 |
+ 23.1% |
+
+
+ | 2025-04-30 |
+ 200098279 |
+ 200098279 |
+ → |
+ 200137998 |
+ 0.2634 |
+ +0.000090 |
+ 68.7% |
+
+
+ | 2025-04-30 |
+ 365266 |
+ 200001397 |
+ → |
+ 200002080 |
+ 0.0412 |
+ +0.000009 |
+ 8.4% |
+
+
+ | 2025-04-30 |
+ 200127644 |
+ 64043 |
+ → |
+ 62074 |
+ 0.4033 |
+ +0.000004 |
+ 21.1% |
+
+
+ | 2025-05-31 |
+ 200127345 |
+ 200127345 |
+ → |
+ 200127755 |
+ 0.1099 |
+ +0.000043 |
+ 28.7% |
+
+
+ | 2025-05-31 |
+ 365596 |
+ 200138884 |
+ → |
+ 200139412 |
+ 0.3454 |
+ +0.000020 |
+ 32.8% |
+
+
+ | 2025-05-31 |
+ 365266 |
+ 365266 |
+ → |
+ 200001397 |
+ 0.0844 |
+ +0.000052 |
+ 12.3% |
+
+
+ | 2025-05-31 |
+ 200127644 |
+ 62074 |
+ → |
+ 64043 |
+ 0.3011 |
+ +0.000011 |
+ 31.4% |
+
+
+ | 2025-06-30 |
+ 200142391 |
+ 200142391 |
+ → |
+ 200048611 |
+ 0.9634 |
+ +0.002654 |
+ 94.5% |
+
+
+ | 2025-06-30 |
+ 200127270 |
+ 200127270 |
+ → |
+ 200131512 |
+ 0.0941 |
+ +0.000062 |
+ 19.7% |
+
+
+ | 2025-06-30 |
+ 200127356 |
+ 200127356 |
+ → |
+ 200069227 |
+ 0.0909 |
+ +0.000043 |
+ 22.9% |
+
+
+ | 2025-06-30 |
+ 200127644 |
+ 64043 |
+ → |
+ 62074 |
+ 0.4033 |
+ +0.000021 |
+ 42.9% |
+
+
+ | 2025-06-30 |
+ 365596 |
+ 200139412 |
+ → |
+ 200138884 |
+ 0.4615 |
+ +0.000050 |
+ 75.8% |
+
+
+ | 2025-07-31 |
+ 200142461 |
+ 200142461 |
+ → |
+ 200001308 |
+ 0.5611 |
+ +0.005264 |
+ 88.2% |
+
+
+ | 2025-08-31 |
+ 200142514 |
+ 200142514 |
+ → |
+ 200139524 |
+ 0.3757 |
+ +0.000073 |
+ 37.8% |
+
+
+ | 2025-08-31 |
+ 365596 |
+ 200138884 |
+ → |
+ 200139412 |
+ 0.3454 |
+ +0.000049 |
+ 50.5% |
+
+
+ | 2025-08-31 |
+ 200127644 |
+ 62074 |
+ → |
+ 64043 |
+ 0.3011 |
+ +0.000005 |
+ 4.5% |
+
+
+ | 2025-09-30 |
+ 200130791 |
+ 200130791 |
+ → |
+ 200131584 |
+ 0.2252 |
+ +0.000145 |
+ 25.9% |
+
+
+ | 2025-09-30 |
+ 200142564 |
+ 200142564 |
+ → |
+ 39616 |
+ 0.2551 |
+ +0.000331 |
+ 76.6% |
+
+
+ | 2025-09-30 |
+ 365596 |
+ 365596 |
+ → |
+ 200138884 |
+ 0.0788 |
+ +0.000084 |
+ 20.4% |
+
+
+ | 2025-09-30 |
+ 200127644 |
+ 200127644 |
+ → |
+ 62074 |
+ 0.0571 |
+ +0.000018 |
+ 2.8% |
+
+
+ | 2025-09-30 |
+ 200142554 |
+ 200142554 |
+ → |
+ 365894 |
+ 0.0755 |
+ +0.000134 |
+ 25.1% |
+
+
+ | 2025-09-30 |
+ 200142552 |
+ 200142552 |
+ → |
+ 366390 |
+ 0.1056 |
+ +0.000123 |
+ 35.3% |
+
+
+ | 2025-09-30 |
+ 200142569 |
+ 200142569 |
+ → |
+ 200142501 |
+ 0.1227 |
+ +0.000054 |
+ 24.6% |
+
+
+ | 2025-09-30 |
+ 200142553 |
+ 200142553 |
+ → |
+ 365409 |
+ 0.1670 |
+ +0.000172 |
+ 50.3% |
+
+
+
+
+
+
05 · Score Ranking at t_ref
+
+
+
+
+
+
+
+ | Rank |
+ Registrar ID |
+ Score (weight) |
+ Relative size |
+ Remapped |
+
+
+
+
+ | #1 |
+ 420350 |
+ 0.047517 |
+
+
+ |
+ ✓ |
+
+
+ | #2 |
+ 364765 |
+ 0.040489 |
+
+
+ |
+ |
+
+
+ | #3 |
+ 200127454 |
+ 0.025713 |
+
+
+ |
+ ✓ |
+
+
+ | #4 |
+ 312933 |
+ 0.024529 |
+
+
+ |
+ |
+
+
+ | #5 |
+ 200127809 |
+ 0.024421 |
+
+
+ |
+ ✓ |
+
+
+ | #6 |
+ 420259 |
+ 0.024286 |
+
+
+ |
+ |
+
+
+ | #7 |
+ 364907 |
+ 0.023860 |
+
+
+ |
+ |
+
+
+ | #8 |
+ 366441 |
+ 0.022560 |
+
+
+ |
+ |
+
+
+ | #9 |
+ 364929 |
+ 0.021895 |
+
+
+ |
+ ✓ |
+
+
+ | #10 |
+ 365538 |
+ 0.021077 |
+
+
+ |
+ |
+
+
+ | #11 |
+ 366403 |
+ 0.020760 |
+
+
+ |
+ |
+
+
+ | #12 |
+ 418961 |
+ 0.019114 |
+
+
+ |
+ ✓ |
+
+
+ | #13 |
+ Private Client |
+ 0.018122 |
+
+
+ |
+ ✓ |
+
+
+ | #14 |
+ 200058108 |
+ 0.017888 |
+
+
+ |
+ ✓ |
+
+
+ | #15 |
+ 200131722 |
+ 0.016855 |
+
+
+ |
+ ✓ |
+
+
+ | #16 |
+ 200073354 |
+ 0.013524 |
+
+
+ |
+ ✓ |
+
+
+ | #17 |
+ 365848 |
+ 0.013359 |
+
+
+ |
+ |
+
+
+ | #18 |
+ 200075932 |
+ 0.012808 |
+
+
+ |
+ ✓ |
+
+
+ | #19 |
+ 200127410 |
+ 0.011476 |
+
+
+ |
+ ✓ |
+
+
+ | #20 |
+ 200127316 |
+ 0.010852 |
+
+
+ |
+ ✓ |
+
+
+ | #21 |
+ 200001349 |
+ 0.010685 |
+
+
+ |
+ |
+
+
+ | #22 |
+ 420207 |
+ 0.010312 |
+
+
+ |
+ ✓ |
+
+
+ | #23 |
+ 364949 |
+ 0.010078 |
+
+
+ |
+ |
+
+
+ | #24 |
+ 366604 |
+ 0.009730 |
+
+
+ |
+ |
+
+
+ | #25 |
+ 200001928 |
+ 0.008857 |
+
+
+ |
+ |
+
+
+ | #26 |
+ 366470 |
+ 0.008616 |
+
+
+ |
+ ✓ |
+
+
+ | #27 |
+ 200127531 |
+ 0.008403 |
+
+
+ |
+ ✓ |
+
+
+ | #28 |
+ 200127811 |
+ 0.008174 |
+
+
+ |
+ ✓ |
+
+
+ | #29 |
+ 200127552 |
+ 0.008026 |
+
+
+ |
+ ✓ |
+
+
+ | #30 |
+ 365095 |
+ 0.007653 |
+
+
+ |
+ |
+
+
+ | #31 |
+ 200127810 |
+ 0.007226 |
+
+
+ |
+ ✓ |
+
+
+ | #32 |
+ 365681 |
+ 0.006896 |
+
+
+ |
+ |
+
+
+ | #33 |
+ 365376 |
+ 0.006886 |
+
+
+ |
+ ✓ |
+
+
+ | #34 |
+ 200127416 |
+ 0.006875 |
+
+
+ |
+ ✓ |
+
+
+ | #35 |
+ 200013231 |
+ 0.006840 |
+
+
+ |
+ ✓ |
+
+
+ | #36 |
+ 200131428 |
+ 0.006485 |
+
+
+ |
+ |
+
+
+ | #37 |
+ 200127446 |
+ 0.006382 |
+
+
+ |
+ ✓ |
+
+
+ | #38 |
+ 365940 |
+ 0.006368 |
+
+
+ |
+ |
+
+
+ | #39 |
+ 200127415 |
+ 0.006116 |
+
+
+ |
+ ✓ |
+
+
+ | #40 |
+ 200142461 |
+ 0.005970 |
+
+
+ |
+ ✓ |
+
+
+ | #41 |
+ 200073355 |
+ 0.005847 |
+
+
+ |
+ ✓ |
+
+
+ | #42 |
+ 200137628 |
+ 0.005813 |
+
+
+ |
+ ✓ |
+
+
+ | #43 |
+ 200127426 |
+ 0.005742 |
+
+
+ |
+ ✓ |
+
+
+ | #44 |
+ 200086548 |
+ 0.005702 |
+
+
+ |
+ ✓ |
+
+
+ | #45 |
+ 200000147 |
+ 0.005614 |
+
+
+ |
+ ✓ |
+
+
+ | #46 |
+ 200128873 |
+ 0.005127 |
+
+
+ |
+ ✓ |
+
+
+ | #47 |
+ 200131649 |
+ 0.005066 |
+
+
+ |
+ ✓ |
+
+
+ | #48 |
+ 200130906 |
+ 0.004993 |
+
+
+ |
+ |
+
+
+ | #49 |
+ 200127367 |
+ 0.004733 |
+
+
+ |
+ ✓ |
+
+
+ | #50 |
+ 200034372 |
+ 0.004656 |
+
+
+ |
+ ✓ |
+
+
+ | #51 |
+ 200127432 |
+ 0.004611 |
+
+
+ |
+ ✓ |
+
+
+ | #52 |
+ 200137997 |
+ 0.004590 |
+
+
+ |
+ ✓ |
+
+
+ | #53 |
+ 422310 |
+ 0.004590 |
+
+
+ |
+ |
+
+
+ | #54 |
+ 200000082 |
+ 0.004293 |
+
+
+ |
+ |
+
+
+ | #55 |
+ 200059588 |
+ 0.004246 |
+
+
+ |
+ ✓ |
+
+
+ | #56 |
+ 307388 |
+ 0.004195 |
+
+
+ |
+ ✓ |
+
+
+ | #57 |
+ 365680 |
+ 0.004080 |
+
+
+ |
+ |
+
+
+ | #58 |
+ 200131580 |
+ 0.004056 |
+
+
+ |
+ ✓ |
+
+
+ | #59 |
+ 200137360 |
+ 0.004027 |
+
+
+ |
+ ✓ |
+
+
+ | #60 |
+ 200131750 |
+ 0.004013 |
+
+
+ |
+ ✓ |
+
+
+ | #61 |
+ 200127528 |
+ 0.003991 |
+
+
+ |
+ ✓ |
+
+
+ | #62 |
+ 365377 |
+ 0.003954 |
+
+
+ |
+ ✓ |
+
+
+ | #63 |
+ 200072907 |
+ 0.003851 |
+
+
+ |
+ ✓ |
+
+
+ | #64 |
+ 364999 |
+ 0.003846 |
+
+
+ |
+ ✓ |
+
+
+ | #65 |
+ 200131777 |
+ 0.003824 |
+
+
+ |
+ ✓ |
+
+
+ | #66 |
+ 200127430 |
+ 0.003822 |
+
+
+ |
+ ✓ |
+
+
+ | #67 |
+ 200139319 |
+ 0.003792 |
+
+
+ |
+ ✓ |
+
+
+ | #68 |
+ 200137356 |
+ 0.003783 |
+
+
+ |
+ ✓ |
+
+
+ | #69 |
+ 200074669 |
+ 0.003672 |
+
+
+ |
+ ✓ |
+
+
+ | #70 |
+ 365445 |
+ 0.003533 |
+
+
+ |
+ |
+
+
+ | #71 |
+ 200137459 |
+ 0.003490 |
+
+
+ |
+ ✓ |
+
+
+ | #72 |
+ 200127815 |
+ 0.003428 |
+
+
+ |
+ ✓ |
+
+
+ | #73 |
+ 200131340 |
+ 0.003413 |
+
+
+ |
+ ✓ |
+
+
+ | #74 |
+ 200094172 |
+ 0.003142 |
+
+
+ |
+ |
+
+
+ | #75 |
+ 200127605 |
+ 0.003064 |
+
+
+ |
+ ✓ |
+
+
+ | #76 |
+ 365172 |
+ 0.003022 |
+
+
+ |
+ |
+
+
+ | #77 |
+ 200002326 |
+ 0.003017 |
+
+
+ |
+ |
+
+
+ | #78 |
+ 200127186 |
+ 0.002952 |
+
+
+ |
+ ✓ |
+
+
+ | #79 |
+ 200127362 |
+ 0.002946 |
+
+
+ |
+ ✓ |
+
+
+ | #80 |
+ 200045720 |
+ 0.002879 |
+
+
+ |
+ ✓ |
+
+
+ | #81 |
+ 200127814 |
+ 0.002871 |
+
+
+ |
+ ✓ |
+
+
+ | #82 |
+ 200127433 |
+ 0.002854 |
+
+
+ |
+ ✓ |
+
+
+ | #83 |
+ 200142391 |
+ 0.002832 |
+
+
+ |
+ ✓ |
+
+
+ | #84 |
+ 365958 |
+ 0.002820 |
+
+
+ |
+ |
+
+
+ | #85 |
+ 200127440 |
+ 0.002743 |
+
+
+ |
+ ✓ |
+
+
+ | #86 |
+ 200085615 |
+ 0.002654 |
+
+
+ |
+ ✓ |
+
+
+ | #87 |
+ 200126380 |
+ 0.002603 |
+
+
+ |
+ ✓ |
+
+
+ | #88 |
+ 200128481 |
+ 0.002600 |
+
+
+ |
+ ✓ |
+
+
+ | #89 |
+ 200138615 |
+ 0.002550 |
+
+
+ |
+ ✓ |
+
+
+ | #90 |
+ 200130958 |
+ 0.002542 |
+
+
+ |
+ |
+
+
+ | #91 |
+ 422576 |
+ 0.002515 |
+
+
+ |
+ ✓ |
+
+
+ | #92 |
+ 200127435 |
+ 0.002492 |
+
+
+ |
+ ✓ |
+
+
+ | #93 |
+ 364724 |
+ 0.002487 |
+
+
+ |
+ |
+
+
+ | #94 |
+ 365242 |
+ 0.002391 |
+
+
+ |
+ ✓ |
+
+
+ | #95 |
+ 200000566 |
+ 0.002260 |
+
+
+ |
+ |
+
+
+ | #96 |
+ 200130697 |
+ 0.002243 |
+
+
+ |
+ ✓ |
+
+
+ | #97 |
+ 200000146 |
+ 0.002220 |
+
+
+ |
+ |
+
+
+ | #98 |
+ 200127553 |
+ 0.002202 |
+
+
+ |
+ ✓ |
+
+
+ | #99 |
+ 200019940 |
+ 0.002182 |
+
+
+ |
+ ✓ |
+
+
+ | #100 |
+ 200127438 |
+ 0.002168 |
+
+
+ |
+ ✓ |
+
+
+ | #101 |
+ 200002169 |
+ 0.002154 |
+
+
+ |
+ |
+
+
+ | #102 |
+ 200137361 |
+ 0.002067 |
+
+
+ |
+ ✓ |
+
+
+ | #103 |
+ 200137467 |
+ 0.002022 |
+
+
+ |
+ ✓ |
+
+
+ | #104 |
+ 422329 |
+ 0.002010 |
+
+
+ |
+ |
+
+
+ | #105 |
+ 200002389 |
+ 0.001955 |
+
+
+ |
+ ✓ |
+
+
+ | #106 |
+ 200142410 |
+ 0.001907 |
+
+
+ |
+ |
+
+
+ | #107 |
+ 200127764 |
+ 0.001863 |
+
+
+ |
+ ✓ |
+
+
+ | #108 |
+ 200006534 |
+ 0.001854 |
+
+
+ |
+ ✓ |
+
+
+ | #109 |
+ 200131309 |
+ 0.001817 |
+
+
+ |
+ ✓ |
+
+
+ | #110 |
+ 200127516 |
+ 0.001790 |
+
+
+ |
+ ✓ |
+
+
+ | #111 |
+ 200138954 |
+ 0.001777 |
+
+
+ |
+ |
+
+
+ | #112 |
+ 200130892 |
+ 0.001766 |
+
+
+ |
+ ✓ |
+
+
+ | #113 |
+ 200002076 |
+ 0.001732 |
+
+
+ |
+ ✓ |
+
+
+ | #114 |
+ 200102190 |
+ 0.001638 |
+
+
+ |
+ ✓ |
+
+
+ | #115 |
+ 200127225 |
+ 0.001626 |
+
+
+ |
+ ✓ |
+
+
+ | #116 |
+ 200139346 |
+ 0.001611 |
+
+
+ |
+ ✓ |
+
+
+ | #117 |
+ 200127579 |
+ 0.001604 |
+
+
+ |
+ ✓ |
+
+
+ | #118 |
+ 200130585 |
+ 0.001584 |
+
+
+ |
+ ✓ |
+
+
+ | #119 |
+ 365461 |
+ 0.001581 |
+
+
+ |
+ |
+
+
+ | #120 |
+ 200127183 |
+ 0.001557 |
+
+
+ |
+ ✓ |
+
+
+ | #121 |
+ 200139398 |
+ 0.001554 |
+
+
+ |
+ ✓ |
+
+
+ | #122 |
+ 200131386 |
+ 0.001547 |
+
+
+ |
+ ✓ |
+
+
+ | #123 |
+ 200127743 |
+ 0.001542 |
+
+
+ |
+ ✓ |
+
+
+ | #124 |
+ 365090 |
+ 0.001474 |
+
+
+ |
+ ✓ |
+
+
+ | #125 |
+ 200137828 |
+ 0.001470 |
+
+
+ |
+ ✓ |
+
+
+ | #126 |
+ 200127272 |
+ 0.001458 |
+
+
+ |
+ ✓ |
+
+
+ | #127 |
+ 200066667 |
+ 0.001454 |
+
+
+ |
+ ✓ |
+
+
+ | #128 |
+ 200127634 |
+ 0.001450 |
+
+
+ |
+ ✓ |
+
+
+ | #129 |
+ 200127443 |
+ 0.001450 |
+
+
+ |
+ |
+
+
+ | #130 |
+ 200131325 |
+ 0.001415 |
+
+
+ |
+ ✓ |
+
+
+ | #131 |
+ 200138625 |
+ 0.001410 |
+
+
+ |
+ ✓ |
+
+
+ | #132 |
+ 365143 |
+ 0.001390 |
+
+
+ |
+ |
+
+
+ | #133 |
+ 200127364 |
+ 0.001363 |
+
+
+ |
+ ✓ |
+
+
+ | #134 |
+ 366559 |
+ 0.001322 |
+
+
+ |
+ ✓ |
+
+
+ | #135 |
+ 200131651 |
+ 0.001310 |
+
+
+ |
+ ✓ |
+
+
+ | #136 |
+ 200130665 |
+ 0.001300 |
+
+
+ |
+ ✓ |
+
+
+ | #137 |
+ 200098279 |
+ 0.001299 |
+
+
+ |
+ ✓ |
+
+
+ | #138 |
+ 365236 |
+ 0.001293 |
+
+
+ |
+ ✓ |
+
+
+ | #139 |
+ 200083248 |
+ 0.001290 |
+
+
+ |
+ ✓ |
+
+
+ | #140 |
+ 419717 |
+ 0.001282 |
+
+
+ |
+ |
+
+
+ | #141 |
+ 200130688 |
+ 0.001253 |
+
+
+ |
+ ✓ |
+
+
+ | #142 |
+ 365127 |
+ 0.001240 |
+
+
+ |
+ ✓ |
+
+
+ | #143 |
+ 200000358 |
+ 0.001232 |
+
+
+ |
+ |
+
+
+ | #144 |
+ 200131294 |
+ 0.001224 |
+
+
+ |
+ ✓ |
+
+
+ | #145 |
+ 200096331 |
+ 0.001217 |
+
+
+ |
+ ✓ |
+
+
+ | #146 |
+ 200130855 |
+ 0.001204 |
+
+
+ |
+ ✓ |
+
+
+ | #147 |
+ 200002087 |
+ 0.001192 |
+
+
+ |
+ ✓ |
+
+
+ | #148 |
+ 200127268 |
+ 0.001189 |
+
+
+ |
+ ✓ |
+
+
+ | #149 |
+ 200127356 |
+ 0.001185 |
+
+
+ |
+ ✓ |
+
+
+ | #150 |
+ 200127375 |
+ 0.001181 |
+
+
+ |
+ ✓ |
+
+
+ | #151 |
+ 365840 |
+ 0.001159 |
+
+
+ |
+ |
+
+
+ | #152 |
+ 200142524 |
+ 0.001148 |
+
+
+ |
+ |
+
+
+ | #153 |
+ 200142234 |
+ 0.001118 |
+
+
+ |
+ |
+
+
+ | #154 |
+ 366397 |
+ 0.001107 |
+
+
+ |
+ |
+
+
+ | #155 |
+ 200127391 |
+ 0.001096 |
+
+
+ |
+ ✓ |
+
+
+ | #156 |
+ 200137830 |
+ 0.001095 |
+
+
+ |
+ ✓ |
+
+
+ | #157 |
+ 419097 |
+ 0.001059 |
+
+
+ |
+ |
+
+
+ | #158 |
+ 200127404 |
+ 0.001051 |
+
+
+ |
+ ✓ |
+
+
+ | #159 |
+ 200127401 |
+ 0.001049 |
+
+
+ |
+ ✓ |
+
+
+ | #160 |
+ 365096 |
+ 0.001036 |
+
+
+ |
+ |
+
+
+ | #161 |
+ 200127731 |
+ 0.000978 |
+
+
+ |
+ ✓ |
+
+
+ | #162 |
+ 200080485 |
+ 0.000976 |
+
+
+ |
+ |
+
+
+ | #163 |
+ 200127484 |
+ 0.000962 |
+
+
+ |
+ ✓ |
+
+
+ | #164 |
+ 200126702 |
+ 0.000959 |
+
+
+ |
+ ✓ |
+
+
+ | #165 |
+ 18872 |
+ 0.000946 |
+
+
+ |
+ |
+
+
+ | #166 |
+ 200127187 |
+ 0.000928 |
+
+
+ |
+ ✓ |
+
+
+ | #167 |
+ 200131763 |
+ 0.000927 |
+
+
+ |
+ ✓ |
+
+
+ | #168 |
+ 200127554 |
+ 0.000924 |
+
+
+ |
+ ✓ |
+
+
+ | #169 |
+ 200127463 |
+ 0.000899 |
+
+
+ |
+ ✓ |
+
+
+ | #170 |
+ 200000340 |
+ 0.000895 |
+
+
+ |
+ |
+
+
+ | #171 |
+ 200002331 |
+ 0.000882 |
+
+
+ |
+ |
+
+
+ | #172 |
+ 200001939 |
+ 0.000882 |
+
+
+ |
+ |
+
+
+ | #173 |
+ 200067096 |
+ 0.000880 |
+
+
+ |
+ ✓ |
+
+
+ | #174 |
+ 200142277 |
+ 0.000879 |
+
+
+ |
+ ✓ |
+
+
+ | #175 |
+ 200131543 |
+ 0.000867 |
+
+
+ |
+ ✓ |
+
+
+ | #176 |
+ 200130690 |
+ 0.000864 |
+
+
+ |
+ ✓ |
+
+
+ | #177 |
+ 200127813 |
+ 0.000861 |
+
+
+ |
+ ✓ |
+
+
+ | #178 |
+ 200002375 |
+ 0.000861 |
+
+
+ |
+ ✓ |
+
+
+ | #179 |
+ 200000694 |
+ 0.000848 |
+
+
+ |
+ |
+
+
+ | #180 |
+ 200131804 |
+ 0.000839 |
+
+
+ |
+ ✓ |
+
+
+ | #181 |
+ 200102238 |
+ 0.000832 |
+
+
+ |
+ ✓ |
+
+
+ | #182 |
+ 200126515 |
+ 0.000828 |
+
+
+ |
+ ✓ |
+
+
+ | #183 |
+ 365452 |
+ 0.000822 |
+
+
+ |
+ |
+
+
+ | #184 |
+ 200139226 |
+ 0.000815 |
+
+
+ |
+ ✓ |
+
+
+ | #185 |
+ 200127191 |
+ 0.000808 |
+
+
+ |
+ ✓ |
+
+
+ | #186 |
+ 200127135 |
+ 0.000786 |
+
+
+ |
+ ✓ |
+
+
+ | #187 |
+ 200000693 |
+ 0.000766 |
+
+
+ |
+ |
+
+
+ | #188 |
+ 200131542 |
+ 0.000758 |
+
+
+ |
+ |
+
+
+ | #189 |
+ 200130684 |
+ 0.000751 |
+
+
+ |
+ ✓ |
+
+
+ | #190 |
+ 200139311 |
+ 0.000748 |
+
+
+ |
+ ✓ |
+
+
+ | #191 |
+ 200127360 |
+ 0.000743 |
+
+
+ |
+ ✓ |
+
+
+ | #192 |
+ 200127578 |
+ 0.000742 |
+
+
+ |
+ ✓ |
+
+
+ | #193 |
+ 200039998 |
+ 0.000734 |
+
+
+ |
+ ✓ |
+
+
+ | #194 |
+ 200127306 |
+ 0.000734 |
+
+
+ |
+ ✓ |
+
+
+ | #195 |
+ 200138989 |
+ 0.000726 |
+
+
+ |
+ ✓ |
+
+
+ | #196 |
+ 200131303 |
+ 0.000708 |
+
+
+ |
+ ✓ |
+
+
+ | #197 |
+ 200127376 |
+ 0.000706 |
+
+
+ |
+ ✓ |
+
+
+ | #198 |
+ 200137353 |
+ 0.000703 |
+
+
+ |
+ ✓ |
+
+
+ | #199 |
+ 200096001 |
+ 0.000700 |
+
+
+ |
+ ✓ |
+
+
+ | #200 |
+ 366551 |
+ 0.000687 |
+
+
+ |
+ |
+
+
+ | #201 |
+ 365807 |
+ 0.000683 |
+
+
+ |
+ ✓ |
+
+
+ | #202 |
+ 200127613 |
+ 0.000675 |
+
+
+ |
+ ✓ |
+
+
+ | #203 |
+ 200054046 |
+ 0.000675 |
+
+
+ |
+ ✓ |
+
+
+ | #204 |
+ 419679 |
+ 0.000674 |
+
+
+ |
+ |
+
+
+ | #205 |
+ 422554 |
+ 0.000665 |
+
+
+ |
+ ✓ |
+
+
+ | #206 |
+ 200001873 |
+ 0.000664 |
+
+
+ |
+ |
+
+
+ | #207 |
+ 200139293 |
+ 0.000657 |
+
+
+ |
+ |
+
+
+ | #208 |
+ 200137633 |
+ 0.000656 |
+
+
+ |
+ ✓ |
+
+
+ | #209 |
+ 200127757 |
+ 0.000642 |
+
+
+ |
+ ✓ |
+
+
+ | #210 |
+ 200129895 |
+ 0.000641 |
+
+
+ |
+ ✓ |
+
+
+ | #211 |
+ 200012832 |
+ 0.000640 |
+
+
+ |
+ ✓ |
+
+
+ | #212 |
+ 200127644 |
+ 0.000638 |
+
+
+ |
+ ✓ |
+
+
+ | #213 |
+ 200052208 |
+ 0.000625 |
+
+
+ |
+ ✓ |
+
+
+ | #214 |
+ 200127419 |
+ 0.000624 |
+
+
+ |
+ ✓ |
+
+
+ | #215 |
+ 200002321 |
+ 0.000621 |
+
+
+ |
+ ✓ |
+
+
+ | #216 |
+ 200130818 |
+ 0.000612 |
+
+
+ |
+ ✓ |
+
+
+ | #217 |
+ 200127816 |
+ 0.000594 |
+
+
+ |
+ ✓ |
+
+
+ | #218 |
+ 200002583 |
+ 0.000590 |
+
+
+ |
+ ✓ |
+
+
+ | #219 |
+ 366537 |
+ 0.000586 |
+
+
+ |
+ |
+
+
+ | #220 |
+ 200139356 |
+ 0.000586 |
+
+
+ |
+ |
+
+
+ | #221 |
+ 200142243 |
+ 0.000582 |
+
+
+ |
+ |
+
+
+ | #222 |
+ 200137759 |
+ 0.000580 |
+
+
+ |
+ ✓ |
+
+
+ | #223 |
+ 200017561 |
+ 0.000578 |
+
+
+ |
+ ✓ |
+
+
+ | #224 |
+ 200137619 |
+ 0.000575 |
+
+
+ |
+ ✓ |
+
+
+ | #225 |
+ 200131175 |
+ 0.000563 |
+
+
+ |
+ ✓ |
+
+
+ | #226 |
+ 200127371 |
+ 0.000562 |
+
+
+ |
+ ✓ |
+
+
+ | #227 |
+ 200130791 |
+ 0.000560 |
+
+
+ |
+ ✓ |
+
+
+ | #228 |
+ 420352 |
+ 0.000552 |
+
+
+ |
+ |
+
+
+ | #229 |
+ 200079169 |
+ 0.000539 |
+
+
+ |
+ ✓ |
+
+
+ | #230 |
+ 200127555 |
+ 0.000534 |
+
+
+ |
+ ✓ |
+
+
+ | #231 |
+ 200142554 |
+ 0.000534 |
+
+
+ |
+ ✓ |
+
+
+ | #232 |
+ 200127996 |
+ 0.000532 |
+
+
+ |
+ ✓ |
+
+
+ | #233 |
+ 200001942 |
+ 0.000524 |
+
+
+ |
+ ✓ |
+
+
+ | #234 |
+ 200131736 |
+ 0.000523 |
+
+
+ |
+ ✓ |
+
+
+ | #235 |
+ 200138977 |
+ 0.000515 |
+
+
+ |
+ |
+
+
+ | #236 |
+ 200131541 |
+ 0.000514 |
+
+
+ |
+ |
+
+
+ | #237 |
+ 200127403 |
+ 0.000498 |
+
+
+ |
+ ✓ |
+
+
+ | #238 |
+ 200086654 |
+ 0.000496 |
+
+
+ |
+ ✓ |
+
+
+ | #239 |
+ 200139568 |
+ 0.000493 |
+
+
+ |
+ ✓ |
+
+
+ | #240 |
+ 200127428 |
+ 0.000493 |
+
+
+ |
+ ✓ |
+
+
+ | #241 |
+ 200092081 |
+ 0.000489 |
+
+
+ |
+ ✓ |
+
+
+ | #242 |
+ 200127603 |
+ 0.000489 |
+
+
+ |
+ ✓ |
+
+
+ | #243 |
+ 200127901 |
+ 0.000483 |
+
+
+ |
+ ✓ |
+
+
+ | #244 |
+ 200136597 |
+ 0.000479 |
+
+
+ |
+ ✓ |
+
+
+ | #245 |
+ 200127479 |
+ 0.000477 |
+
+
+ |
+ ✓ |
+
+
+ | #246 |
+ 200002312 |
+ 0.000475 |
+
+
+ |
+ |
+
+
+ | #247 |
+ 200002226 |
+ 0.000471 |
+
+
+ |
+ ✓ |
+
+
+ | #248 |
+ 200127627 |
+ 0.000471 |
+
+
+ |
+ ✓ |
+
+
+ | #249 |
+ 200142168 |
+ 0.000463 |
+
+
+ |
+ ✓ |
+
+
+ | #250 |
+ 200130519 |
+ 0.000454 |
+
+
+ |
+ |
+
+
+ | #251 |
+ 200127798 |
+ 0.000451 |
+
+
+ |
+ ✓ |
+
+
+ | #252 |
+ 422219 |
+ 0.000450 |
+
+
+ |
+ |
+
+
+ | #253 |
+ 200130977 |
+ 0.000449 |
+
+
+ |
+ ✓ |
+
+
+ | #254 |
+ 200127803 |
+ 0.000448 |
+
+
+ |
+ ✓ |
+
+
+ | #255 |
+ 366602 |
+ 0.000448 |
+
+
+ |
+ ✓ |
+
+
+ | #256 |
+ 200102184 |
+ 0.000447 |
+
+
+ |
+ ✓ |
+
+
+ | #257 |
+ 200127556 |
+ 0.000447 |
+
+
+ |
+ ✓ |
+
+
+ | #258 |
+ 200128363 |
+ 0.000446 |
+
+
+ |
+ ✓ |
+
+
+ | #259 |
+ 200137354 |
+ 0.000443 |
+
+
+ |
+ ✓ |
+
+
+ | #260 |
+ 200127308 |
+ 0.000436 |
+
+
+ |
+ ✓ |
+
+
+ | #261 |
+ 200131539 |
+ 0.000435 |
+
+
+ |
+ |
+
+
+ | #262 |
+ 365266 |
+ 0.000434 |
+
+
+ |
+ ✓ |
+
+
+ | #263 |
+ 200130841 |
+ 0.000433 |
+
+
+ |
+ ✓ |
+
+
+ | #264 |
+ 200142564 |
+ 0.000432 |
+
+
+ |
+ ✓ |
+
+
+ | #265 |
+ 366024 |
+ 0.000431 |
+
+
+ |
+ ✓ |
+
+
+ | #266 |
+ 200001621 |
+ 0.000425 |
+
+
+ |
+ ✓ |
+
+
+ | #267 |
+ 200131534 |
+ 0.000423 |
+
+
+ |
+ ✓ |
+
+
+ | #268 |
+ 200127448 |
+ 0.000422 |
+
+
+ |
+ ✓ |
+
+
+ | #269 |
+ 200043690 |
+ 0.000421 |
+
+
+ |
+ ✓ |
+
+
+ | #270 |
+ 200127383 |
+ 0.000421 |
+
+
+ |
+ ✓ |
+
+
+ | #271 |
+ 200093331 |
+ 0.000419 |
+
+
+ |
+ ✓ |
+
+
+ | #272 |
+ 365596 |
+ 0.000411 |
+
+
+ |
+ ✓ |
+
+
+ | #273 |
+ 422445 |
+ 0.000405 |
+
+
+ |
+ |
+
+
+ | #274 |
+ 200126526 |
+ 0.000405 |
+
+
+ |
+ ✓ |
+
+
+ | #275 |
+ 200127598 |
+ 0.000405 |
+
+
+ |
+ ✓ |
+
+
+ | #276 |
+ 200130527 |
+ 0.000404 |
+
+
+ |
+ ✓ |
+
+
+ | #277 |
+ 200127417 |
+ 0.000398 |
+
+
+ |
+ ✓ |
+
+
+ | #278 |
+ 200095646 |
+ 0.000398 |
+
+
+ |
+ ✓ |
+
+
+ | #279 |
+ 200131082 |
+ 0.000393 |
+
+
+ |
+ ✓ |
+
+
+ | #280 |
+ 416078 |
+ 0.000389 |
+
+
+ |
+ ✓ |
+
+
+ | #281 |
+ 200131081 |
+ 0.000387 |
+
+
+ |
+ ✓ |
+
+
+ | #282 |
+ 200127201 |
+ 0.000385 |
+
+
+ |
+ ✓ |
+
+
+ | #283 |
+ 200001926 |
+ 0.000384 |
+
+
+ |
+ |
+
+
+ | #284 |
+ 365304 |
+ 0.000374 |
+
+
+ |
+ ✓ |
+
+
+ | #285 |
+ 366107 |
+ 0.000371 |
+
+
+ |
+ ✓ |
+
+
+ | #286 |
+ 200127270 |
+ 0.000367 |
+
+
+ |
+ ✓ |
+
+
+ | #287 |
+ 200001899 |
+ 0.000365 |
+
+
+ |
+ |
+
+
+ | #288 |
+ 200000076 |
+ 0.000364 |
+
+
+ |
+ |
+
+
+ | #289 |
+ 422691 |
+ 0.000363 |
+
+
+ |
+ |
+
+
+ | #290 |
+ 200127190 |
+ 0.000359 |
+
+
+ |
+ ✓ |
+
+
+ | #291 |
+ 200102125 |
+ 0.000354 |
+
+
+ |
+ ✓ |
+
+
+ | #292 |
+ 200131052 |
+ 0.000353 |
+
+
+ |
+ ✓ |
+
+
+ | #293 |
+ 200131648 |
+ 0.000348 |
+
+
+ |
+ ✓ |
+
+
+ | #294 |
+ 200142552 |
+ 0.000348 |
+
+
+ |
+ ✓ |
+
+
+ | #295 |
+ 200137891 |
+ 0.000346 |
+
+
+ |
+ |
+
+
+ | #296 |
+ 200013447 |
+ 0.000345 |
+
+
+ |
+ ✓ |
+
+
+ | #297 |
+ 200142553 |
+ 0.000342 |
+
+
+ |
+ ✓ |
+
+
+ | #298 |
+ 200127498 |
+ 0.000340 |
+
+
+ |
+ ✓ |
+
+
+ | #299 |
+ 200139526 |
+ 0.000335 |
+
+
+ |
+ ✓ |
+
+
+ | #300 |
+ 200130500 |
+ 0.000334 |
+
+
+ |
+ ✓ |
+
+
+ | #301 |
+ 200131477 |
+ 0.000333 |
+
+
+ |
+ ✓ |
+
+
+ | #302 |
+ 200127381 |
+ 0.000332 |
+
+
+ |
+ ✓ |
+
+
+ | #303 |
+ 200137851 |
+ 0.000330 |
+
+
+ |
+ ✓ |
+
+
+ | #304 |
+ 200102197 |
+ 0.000329 |
+
+
+ |
+ ✓ |
+
+
+ | #305 |
+ 200131771 |
+ 0.000329 |
+
+
+ |
+ ✓ |
+
+
+ | #306 |
+ 200127903 |
+ 0.000326 |
+
+
+ |
+ ✓ |
+
+
+ | #307 |
+ 200127343 |
+ 0.000321 |
+
+
+ |
+ ✓ |
+
+
+ | #308 |
+ 200127703 |
+ 0.000318 |
+
+
+ |
+ ✓ |
+
+
+ | #309 |
+ 200086037 |
+ 0.000318 |
+
+
+ |
+ ✓ |
+
+
+ | #310 |
+ 200128854 |
+ 0.000318 |
+
+
+ |
+ ✓ |
+
+
+ | #311 |
+ 200137928 |
+ 0.000317 |
+
+
+ |
+ ✓ |
+
+
+ | #312 |
+ 420363 |
+ 0.000316 |
+
+
+ |
+ |
+
+
+ | #313 |
+ 200130903 |
+ 0.000315 |
+
+
+ |
+ ✓ |
+
+
+ | #314 |
+ 200127533 |
+ 0.000308 |
+
+
+ |
+ ✓ |
+
+
+ | #315 |
+ 200137951 |
+ 0.000303 |
+
+
+ |
+ |
+
+
+ | #316 |
+ 200131540 |
+ 0.000301 |
+
+
+ |
+ |
+
+
+ | #317 |
+ 200130719 |
+ 0.000293 |
+
+
+ |
+ ✓ |
+
+
+ | #318 |
+ 200138892 |
+ 0.000290 |
+
+
+ |
+ ✓ |
+
+
+ | #319 |
+ 366386 |
+ 0.000284 |
+
+
+ |
+ ✓ |
+
+
+ | #320 |
+ 200000736 |
+ 0.000284 |
+
+
+ |
+ |
+
+
+ | #321 |
+ 200089406 |
+ 0.000281 |
+
+
+ |
+ ✓ |
+
+
+ | #322 |
+ 366401 |
+ 0.000278 |
+
+
+ |
+ ✓ |
+
+
+ | #323 |
+ 422874 |
+ 0.000275 |
+
+
+ |
+ |
+
+
+ | #324 |
+ 200130549 |
+ 0.000274 |
+
+
+ |
+ ✓ |
+
+
+ | #325 |
+ 200127456 |
+ 0.000272 |
+
+
+ |
+ ✓ |
+
+
+ | #326 |
+ 200128473 |
+ 0.000270 |
+
+
+ |
+ ✓ |
+
+
+ | #327 |
+ 200002222 |
+ 0.000269 |
+
+
+ |
+ |
+
+
+ | #328 |
+ 365241 |
+ 0.000268 |
+
+
+ |
+ ✓ |
+
+
+ | #329 |
+ 200081805 |
+ 0.000267 |
+
+
+ |
+ ✓ |
+
+
+ | #330 |
+ 200138688 |
+ 0.000256 |
+
+
+ |
+ |
+
+
+ | #331 |
+ 200055274 |
+ 0.000254 |
+
+
+ |
+ ✓ |
+
+
+ | #332 |
+ 200059025 |
+ 0.000253 |
+
+
+ |
+ ✓ |
+
+
+ | #333 |
+ 200059378 |
+ 0.000253 |
+
+
+ |
+ ✓ |
+
+
+ | #334 |
+ 200001835 |
+ 0.000253 |
+
+
+ |
+ ✓ |
+
+
+ | #335 |
+ 365328 |
+ 0.000244 |
+
+
+ |
+ ✓ |
+
+
+ | #336 |
+ 200127331 |
+ 0.000243 |
+
+
+ |
+ ✓ |
+
+
+ | #337 |
+ 200127174 |
+ 0.000242 |
+
+
+ |
+ ✓ |
+
+
+ | #338 |
+ 200138687 |
+ 0.000242 |
+
+
+ |
+ ✓ |
+
+
+ | #339 |
+ 200064142 |
+ 0.000241 |
+
+
+ |
+ ✓ |
+
+
+ | #340 |
+ 200002147 |
+ 0.000239 |
+
+
+ |
+ ✓ |
+
+
+ | #341 |
+ 200127587 |
+ 0.000238 |
+
+
+ |
+ ✓ |
+
+
+ | #342 |
+ 200127639 |
+ 0.000238 |
+
+
+ |
+ ✓ |
+
+
+ | #343 |
+ 365094 |
+ 0.000235 |
+
+
+ |
+ ✓ |
+
+
+ | #344 |
+ 200131449 |
+ 0.000235 |
+
+
+ |
+ ✓ |
+
+
+ | #345 |
+ 200131301 |
+ 0.000233 |
+
+
+ |
+ ✓ |
+
+
+ | #346 |
+ 200052562 |
+ 0.000232 |
+
+
+ |
+ ✓ |
+
+
+ | #347 |
+ 200127614 |
+ 0.000227 |
+
+
+ |
+ ✓ |
+
+
+ | #348 |
+ 200094954 |
+ 0.000224 |
+
+
+ |
+ ✓ |
+
+
+ | #349 |
+ 200096002 |
+ 0.000222 |
+
+
+ |
+ ✓ |
+
+
+ | #350 |
+ 200127434 |
+ 0.000221 |
+
+
+ |
+ ✓ |
+
+
+ | #351 |
+ 200142569 |
+ 0.000220 |
+
+
+ |
+ ✓ |
+
+
+ | #352 |
+ 200127345 |
+ 0.000215 |
+
+
+ |
+ ✓ |
+
+
+ | #353 |
+ 200131056 |
+ 0.000214 |
+
+
+ |
+ ✓ |
+
+
+ | #354 |
+ 200127817 |
+ 0.000212 |
+
+
+ |
+ ✓ |
+
+
+ | #355 |
+ 200137824 |
+ 0.000211 |
+
+
+ |
+ ✓ |
+
+
+ | #356 |
+ 200137500 |
+ 0.000211 |
+
+
+ |
+ ✓ |
+
+
+ | #357 |
+ 200000201 |
+ 0.000211 |
+
+
+ |
+ |
+
+
+ | #358 |
+ 422444 |
+ 0.000210 |
+
+
+ |
+ |
+
+
+ | #359 |
+ 200137477 |
+ 0.000210 |
+
+
+ |
+ ✓ |
+
+
+ | #360 |
+ 200127185 |
+ 0.000209 |
+
+
+ |
+ ✓ |
+
+
+ | #361 |
+ 200138664 |
+ 0.000207 |
+
+
+ |
+ ✓ |
+
+
+ | #362 |
+ 200091288 |
+ 0.000207 |
+
+
+ |
+ ✓ |
+
+
+ | #363 |
+ 200142241 |
+ 0.000207 |
+
+
+ |
+ ✓ |
+
+
+ | #364 |
+ 200066455 |
+ 0.000206 |
+
+
+ |
+ ✓ |
+
+
+ | #365 |
+ 200130507 |
+ 0.000205 |
+
+
+ |
+ ✓ |
+
+
+ | #366 |
+ 200138950 |
+ 0.000201 |
+
+
+ |
+ ✓ |
+
+
+ | #367 |
+ 200102151 |
+ 0.000200 |
+
+
+ |
+ ✓ |
+
+
+ | #368 |
+ 200127812 |
+ 0.000199 |
+
+
+ |
+ ✓ |
+
+
+ | #369 |
+ 365703 |
+ 0.000197 |
+
+
+ |
+ ✓ |
+
+
+ | #370 |
+ 200131343 |
+ 0.000196 |
+
+
+ |
+ ✓ |
+
+
+ | #371 |
+ 200129716 |
+ 0.000195 |
+
+
+ |
+ ✓ |
+
+
+ | #372 |
+ 200002109 |
+ 0.000194 |
+
+
+ |
+ |
+
+
+ | #373 |
+ 420244 |
+ 0.000194 |
+
+
+ |
+ |
+
+
+ | #374 |
+ 200130653 |
+ 0.000194 |
+
+
+ |
+ ✓ |
+
+
+ | #375 |
+ 200142514 |
+ 0.000193 |
+
+
+ |
+ ✓ |
+
+
+ | #376 |
+ 200131387 |
+ 0.000192 |
+
+
+ |
+ ✓ |
+
+
+ | #377 |
+ 200069640 |
+ 0.000191 |
+
+
+ |
+ ✓ |
+
+
+ | #378 |
+ 200138655 |
+ 0.000190 |
+
+
+ |
+ ✓ |
+
+
+ | #379 |
+ 200129815 |
+ 0.000190 |
+
+
+ |
+ ✓ |
+
+
+ | #380 |
+ 200130583 |
+ 0.000189 |
+
+
+ |
+ ✓ |
+
+
+ | #381 |
+ 200129811 |
+ 0.000188 |
+
+
+ |
+ ✓ |
+
+
+ | #382 |
+ 200055990 |
+ 0.000187 |
+
+
+ |
+ ✓ |
+
+
+ | #383 |
+ 215905 |
+ 0.000187 |
+
+
+ |
+ ✓ |
+
+
+ | #384 |
+ 200127495 |
+ 0.000186 |
+
+
+ |
+ ✓ |
+
+
+ | #385 |
+ 200021958 |
+ 0.000186 |
+
+
+ |
+ ✓ |
+
+
+ | #386 |
+ 419541 |
+ 0.000186 |
+
+
+ |
+ ✓ |
+
+
+ | #387 |
+ 365368 |
+ 0.000186 |
+
+
+ |
+ ✓ |
+
+
+ | #388 |
+ 200127447 |
+ 0.000179 |
+
+
+ |
+ ✓ |
+
+
+ | #389 |
+ 200139538 |
+ 0.000177 |
+
+
+ |
+ ✓ |
+
+
+ | #390 |
+ 200104338 |
+ 0.000177 |
+
+
+ |
+ ✓ |
+
+
+ | #391 |
+ 364697 |
+ 0.000177 |
+
+
+ |
+ ✓ |
+
+
+ | #392 |
+ 200006349 |
+ 0.000176 |
+
+
+ |
+ ✓ |
+
+
+ | #393 |
+ 200127478 |
+ 0.000176 |
+
+
+ |
+ ✓ |
+
+
+ | #394 |
+ 200131579 |
+ 0.000172 |
+
+
+ |
+ ✓ |
+
+
+ | #395 |
+ 200127733 |
+ 0.000172 |
+
+
+ |
+ ✓ |
+
+
+ | #396 |
+ 366131 |
+ 0.000172 |
+
+
+ |
+ ✓ |
+
+
+ | #397 |
+ 200130528 |
+ 0.000172 |
+
+
+ |
+ ✓ |
+
+
+ | #398 |
+ 200130743 |
+ 0.000170 |
+
+
+ |
+ ✓ |
+
+
+ | #399 |
+ 200138953 |
+ 0.000168 |
+
+
+ |
+ ✓ |
+
+
+ | #400 |
+ 200127455 |
+ 0.000168 |
+
+
+ |
+ ✓ |
+
+
+ | #401 |
+ 365746 |
+ 0.000166 |
+
+
+ |
+ |
+
+
+ | #402 |
+ 200054637 |
+ 0.000166 |
+
+
+ |
+ ✓ |
+
+
+ | #403 |
+ 200130842 |
+ 0.000164 |
+
+
+ |
+ ✓ |
+
+
+ | #404 |
+ 200127728 |
+ 0.000164 |
+
+
+ |
+ ✓ |
+
+
+ | #405 |
+ 200001285 |
+ 0.000162 |
+
+
+ |
+ ✓ |
+
+
+ | #406 |
+ 200127872 |
+ 0.000160 |
+
+
+ |
+ ✓ |
+
+
+ | #407 |
+ 200131985 |
+ 0.000158 |
+
+
+ |
+ |
+
+
+ | #408 |
+ 419789 |
+ 0.000157 |
+
+
+ |
+ ✓ |
+
+
+ | #409 |
+ 200001302 |
+ 0.000157 |
+
+
+ |
+ |
+
+
+ | #410 |
+ 200127350 |
+ 0.000156 |
+
+
+ |
+ ✓ |
+
+
+ | #411 |
+ 200139375 |
+ 0.000156 |
+
+
+ |
+ ✓ |
+
+
+ | #412 |
+ 418456 |
+ 0.000156 |
+
+
+ |
+ ✓ |
+
+
+ | #413 |
+ 419312 |
+ 0.000155 |
+
+
+ |
+ |
+
+
+ | #414 |
+ 365274 |
+ 0.000155 |
+
+
+ |
+ |
+
+
+ | #415 |
+ 200002429 |
+ 0.000154 |
+
+
+ |
+ ✓ |
+
+
+ | #416 |
+ 200127127 |
+ 0.000153 |
+
+
+ |
+ ✓ |
+
+
+ | #417 |
+ 200131156 |
+ 0.000153 |
+
+
+ |
+ ✓ |
+
+
+ | #418 |
+ 200085396 |
+ 0.000153 |
+
+
+ |
+ |
+
+
+ | #419 |
+ 200066763 |
+ 0.000152 |
+
+
+ |
+ ✓ |
+
+
+ | #420 |
+ 364852 |
+ 0.000151 |
+
+
+ |
+ |
+
+
+ | #421 |
+ 200137992 |
+ 0.000151 |
+
+
+ |
+ ✓ |
+
+
+ | #422 |
+ 200102220 |
+ 0.000150 |
+
+
+ |
+ ✓ |
+
+
+ | #423 |
+ 200139116 |
+ 0.000150 |
+
+
+ |
+ ✓ |
+
+
+ | #424 |
+ 200032028 |
+ 0.000150 |
+
+
+ |
+ ✓ |
+
+
+ | #425 |
+ 365888 |
+ 0.000149 |
+
+
+ |
+ |
+
+
+ | #426 |
+ 200126717 |
+ 0.000149 |
+
+
+ |
+ ✓ |
+
+
+ | #427 |
+ 200139333 |
+ 0.000148 |
+
+
+ |
+ ✓ |
+
+
+ | #428 |
+ 200130475 |
+ 0.000148 |
+
+
+ |
+ ✓ |
+
+
+ | #429 |
+ 200127583 |
+ 0.000148 |
+
+
+ |
+ ✓ |
+
+
+ | #430 |
+ 200127175 |
+ 0.000147 |
+
+
+ |
+ ✓ |
+
+
+ | #431 |
+ 200138669 |
+ 0.000147 |
+
+
+ |
+ ✓ |
+
+
+ | #432 |
+ 200127157 |
+ 0.000147 |
+
+
+ |
+ ✓ |
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file