From ac4966bdf5e588eb9191388dd258cb2701b14a59 Mon Sep 17 00:00:00 2001 From: Dennis Wayo <117969019+DennisWayo@users.noreply.github.com> Date: Thu, 17 Sep 2026 16:04:30 +0500 Subject: [PATCH] Add paper 05 revision evidence --- examples/paper_runs/paper_05/README.md | 44 ++++++++---- .../decoder_closure_audit.csv | 22 ++++++ .../figure_revision_validation.pdf | Bin 0 -> 23195 bytes .../figure_revision_validation.png | Bin 0 -> 123546 bytes .../revision_evidence/gkp_sensitivity.csv | 14 ++++ ...ardware_data_measurement_mapping_audit.csv | 9 +++ .../revision_evidence/mapping_validation.csv | 41 ++++++++++++ .../revision_evidence/revision_evidence.json | 16 +++++ .../revision_evidence/support_metrics.csv | 49 ++++++++++++++ .../surface_z_check_matrix.tex | 23 +++++++ .../surface_z_check_supports.csv | 17 +++++ .../paper_05/scripts/analyze_live_css_ldpc.py | 4 +- .../scripts/build_css_ldpc_syndrome.py | 4 +- .../paper_05/scripts/css_ldpc_syndrome.py | 6 +- .../scripts/decode_css_ldpc_syndromes.py | 10 +-- .../scripts/decode_gkp_digitized_syndromes.py | 6 +- .../scripts/decode_repetition_syndromes.py | 6 +- .../scripts/decode_surface_syndromes.py | 10 +-- .../scripts/fetch_ibm_css_ldpc_results.py | 6 +- .../scripts/ingest_css_ldpc_results.py | 4 +- .../scripts/paper05_decoder_policies.py | 63 +++++++++++------- .../scripts/run_local_css_ldpc_sampler.py | 4 +- .../scripts/submit_ibm_css_ldpc_sampler.py | 6 +- 23 files changed, 292 insertions(+), 72 deletions(-) create mode 100644 examples/paper_runs/paper_05/revision_evidence/decoder_closure_audit.csv create mode 100644 examples/paper_runs/paper_05/revision_evidence/figure_revision_validation.pdf create mode 100644 examples/paper_runs/paper_05/revision_evidence/figure_revision_validation.png create mode 100644 examples/paper_runs/paper_05/revision_evidence/gkp_sensitivity.csv create mode 100644 examples/paper_runs/paper_05/revision_evidence/hardware_data_measurement_mapping_audit.csv create mode 100644 examples/paper_runs/paper_05/revision_evidence/mapping_validation.csv create mode 100644 examples/paper_runs/paper_05/revision_evidence/revision_evidence.json create mode 100644 examples/paper_runs/paper_05/revision_evidence/support_metrics.csv create mode 100644 examples/paper_runs/paper_05/revision_evidence/surface_z_check_matrix.tex create mode 100644 examples/paper_runs/paper_05/revision_evidence/surface_z_check_supports.csv diff --git a/examples/paper_runs/paper_05/README.md b/examples/paper_runs/paper_05/README.md index 8c16f0e..8638def 100644 --- a/examples/paper_runs/paper_05/README.md +++ b/examples/paper_runs/paper_05/README.md @@ -4,8 +4,8 @@ This workflow demonstrates syndrome extraction and decoder replay for four branches: - repetition-code circuits; -- compact CSS-LDPC/qLDPC-style Steane Z-check circuits; -- distance-5 surface-code Z-check circuits; +- compact CSS/Steane Z-check circuits; +- \(5\times5\) planar surface-check Z-layer circuits; - a PennyLane-backed digitized-GKP companion branch. The first three branches can run locally and, when credentials are configured, @@ -17,9 +17,21 @@ Z-check bits. It tests the LiDMaS+ request interface for GKP-derived digitized syndromes without claiming physical GKP execution. Each decode stage replays every extracted syndrome stream through three -policies: MWPM/minimum-weight, UF erasure peeling, and hard-decision BP/min-sum. -The manuscript plots default to the MWPM baseline; the UF and BP rows are -written into the generated decoder response files and `decoded_shots.csv`. +policies: exact binary minimum weight (`emw`), a union-find-like greedy +heuristic (`uf_like`), and a hard-decision bit-flip heuristic (`bit_flip`). +The code also accepts historical aliases (`mwpm`, `uf`, and `bp`) so older +generated filenames remain readable; these aliases do not imply that a matching +graph or full BP/min-sum update was used. The manuscript plots default to the +EMW baseline, while the heuristic rows are written into the generated decoder +response files and `decoded_shots.csv`. + +## Revision evidence + +The `revision_evidence/` directory contains the fixed reviewer-facing artifacts +cited by the FCS electronic supplement: `mapping_validation.csv`, +`decoder_closure_audit.csv`, `support_metrics.csv`, `gkp_sensitivity.csv`, the +surface-check matrix/support exports, the hardware data-register audit, and the +revision validation figure. Run the local workflow: @@ -74,7 +86,7 @@ Once the status is complete, run: ./examples/paper_runs/paper_05/06_analyze_and_plot.sh ``` -Run the compact qLDPC-style CSS-LDPC path: +Run the compact CSS/Steane path: ```bash LIDMAS_P5_QLDPC_TARGETS=all \ @@ -86,11 +98,13 @@ LIDMAS_P5_QLDPC_SHOTS=4096 \ ./examples/paper_runs/paper_05/12_run_qldpc_local_simulation.sh ``` -The qLDPC path uses the Steane CSS parity-check matrix as a compact -LDPC-style hardware surrogate. It measures the Z-check half for clean and +The compact CSS path uses the Steane CSS parity-check matrix as a small +hardware-facing interface check. It measures the Z-check half for clean and single-X injected data-qubit circuits. This is suitable for live syndrome -extraction and correction-localization tests, but it should be described as a -small CSS-LDPC demonstration rather than a large asymptotic qLDPC memory. +extraction and correction-localization tests, but it should not be described as +a large asymptotic qLDPC memory. The `LIDMAS_P5_QLDPC_*` environment-variable +prefix is retained only as a historical compatibility alias for this compact +CSS/Steane branch. Submit and fetch the matching IBM Runtime job: @@ -109,7 +123,7 @@ LIDMAS_P5_QLDPC_IBM_STATUS_ONLY=1 \ ./examples/paper_runs/paper_05/16_analyze_qldpc.sh ``` -Run the distance-5 surface-code Z-check path: +Run the \(5\times5\) planar surface-check Z-layer path: ```bash LIDMAS_P5_SURFACE_DISTANCE=5 \ @@ -122,9 +136,11 @@ LIDMAS_P5_SURFACE_SHOTS=4096 \ ./examples/paper_runs/paper_05/22_run_surface_local_simulation.sh ``` -The surface path measures only the Z-check half for injected-X correction. The -default representative target set avoids running all 40 single-data-qubit -injections while still using a distance-5, 56-active-qubit circuit. +The surface-check path measures only the Z-check half for injected-X +correction. The default representative target set avoids running all 40 +single-data-qubit injections while still using a \(5\times5\), 56-active-qubit +circuit. It is an interface audit, not a demonstration of an encoded logical +qubit or code distance. Submit and fetch the matching IBM Runtime job: diff --git a/examples/paper_runs/paper_05/revision_evidence/decoder_closure_audit.csv b/examples/paper_runs/paper_05/revision_evidence/decoder_closure_audit.csv new file mode 100644 index 0000000..2e34b1d --- /dev/null +++ b/examples/paper_runs/paper_05/revision_evidence/decoder_closure_audit.csv @@ -0,0 +1,22 @@ +study,source,policy,rows,native_nonzero_residual_rate,mean_native_residual_weight,closure_invocation_rate,mean_closure_weight_all_rows,mean_closure_weight_when_invoked,post_closure_nonzero_residual_rate +repetition,IBM,exact_binary_minimum_weight,24576,0.0,0.0,0.0,0.0,0.0,0.0 +repetition,IBM,union_find_heuristic,24576,0.0579833984375,0.0579833984375,0.0579833984375,0.115966796875,2.0,0.0 +repetition,IBM,hard_decision_bit_flip,24576,0.0579833984375,0.0579833984375,0.0579833984375,0.115966796875,2.0,0.0 +repetition,noisy_local,exact_binary_minimum_weight,24576,0.0,0.0,0.0,0.0,0.0,0.0 +repetition,noisy_local,union_find_heuristic,24576,0.034138997395833336,0.034138997395833336,0.034138997395833336,0.06827799479166667,2.0,0.0 +repetition,noisy_local,hard_decision_bit_flip,24576,0.034138997395833336,0.034138997395833336,0.034138997395833336,0.06827799479166667,2.0,0.0 +compact_css_steane,IBM,exact_binary_minimum_weight,32768,0.0,0.0,0.0,0.0,0.0,0.0 +compact_css_steane,IBM,union_find_heuristic,32768,0.0,0.0,0.0,0.0,0.0,0.0 +compact_css_steane,IBM,hard_decision_bit_flip,32768,0.0,0.0,0.0,0.0,0.0,0.0 +compact_css_steane,noisy_local,exact_binary_minimum_weight,32768,0.0,0.0,0.0,0.0,0.0,0.0 +compact_css_steane,noisy_local,union_find_heuristic,32768,0.0,0.0,0.0,0.0,0.0,0.0 +compact_css_steane,noisy_local,hard_decision_bit_flip,32768,0.0,0.0,0.0,0.0,0.0,0.0 +surface_d5,IBM,exact_binary_minimum_weight,36864,0.0,0.0,0.0,0.0,0.0,0.0 +surface_d5,IBM,union_find_heuristic,36864,0.4156358506944444,0.4451768663194444,0.4156358506944444,0.8312717013888888,2.0,0.0 +surface_d5,IBM,hard_decision_bit_flip,36864,0.4156358506944444,0.4451768663194444,0.4156358506944444,0.8312717013888888,2.0,0.0 +surface_d5,noisy_local,exact_binary_minimum_weight,36864,0.0,0.0,0.0,0.0,0.0,0.0 +surface_d5,noisy_local,union_find_heuristic,36864,0.0683865017361111,0.06884765625,0.0683865017361111,0.1367730034722222,2.0,0.0 +surface_d5,noisy_local,hard_decision_bit_flip,36864,0.0683865017361111,0.06884765625,0.0683865017361111,0.1367730034722222,2.0,0.0 +digitized_gkp_proxy,PennyLane_proxy,exact_binary_minimum_weight,36864,0.0,0.0,0.0,0.0,0.0,0.0 +digitized_gkp_proxy,PennyLane_proxy,union_find_heuristic,36864,0.1623263888888889,0.16422526041666666,0.1623263888888889,0.3246527777777778,2.0,0.0 +digitized_gkp_proxy,PennyLane_proxy,hard_decision_bit_flip,36864,0.1623263888888889,0.16422526041666666,0.1623263888888889,0.3246527777777778,2.0,0.0 diff --git a/examples/paper_runs/paper_05/revision_evidence/figure_revision_validation.pdf b/examples/paper_runs/paper_05/revision_evidence/figure_revision_validation.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1179f3901069096e561012965d333a5f1f7371b1 GIT binary patch literal 23195 zcma&M1C%A*)~=amrENR2(pIHy+qP|+m9}l$HY#n~R%e~>obGe)?H+%RJ;vTMVyzYP zoik$Z%y{D=krfoCq5sJQMN+YjU)}~qk57khqi+ty#f49+=w@q#Pb;A3sAp+of=?@} zXJX`l&+t7#9-oH?%E;RA??kr$S|Ds=?TF9#uL-oOGWzC529Efw|7;4mI*KSb>Ny(W zGySteR?pGV$le;C`R^tat%9kZp_#P_KFhyH?QIMcj2!VbzS9Z{e@iiPb;PF?v-+06 z|L;$Me}9VMYyFoT`v0?lzqSD$_m6y9c_RlKCwqhMdj9JF&M#$TXr{++EhpMinxCp|kG9UB`X!*?cHf$ti>59EN){*O{VYipbDE&9K!{<|-K zhyT+^Nh50$M^k+IeWA(X-4S$ z<@^Du##|SV+OHQ!&4a3@YDYc5=evv=8FuGt%3~qZ2Z%Je<;;3Xt(efGztdolKu~7e zGDF$Y--Y=_O^O9maz%|wGKLG&JnK}+#|sD=ftd<#g!FP0Yo-%A*T-x2tI%iGqA-&L z>qq;7nGthf^JwfainAbt>f7hTp0Qy!OWj$9f^hr7DMr41MSycuT9EiCC051}$Zec} zz@)nOY2}Viw!7&PxQ|W|_RTBq^R7!99BpiE+$`*$aA+YW&ziVDZJvBCuDmusKDD2O zCf7&~bcL)Mu30j=)w;*tUUoir-UMQ%KPZkWoI{-Cc;xJnzRE_*p^)4_-&R{x)|Q%g zRKR8w|92VuW2T3jC&yhJwa3!8|DGvbl1^BSRLlO0y{kdZ3G0)du_Eu` z|M=$8Z9Oej(rGBd`#SSy)ce+snMp8Ak&hlURCQ>lZgQ$_v^c-=Yi4im1@FTU_{L%< zfo`J!=EeD!Y5+pn{Q=J7hlLTHCi~sswj`?2$T)Kco*3ndrv|MuUHyII-Oa4FMnm6 z!>NIU5~ul3T5w)1s=Gu3pCMkeC+N?w6^D-}lFFn|3GH z424gUxeeC%H{2bx376+XXYRriUc6uK!r(Na*)qZPv8`{X#9Yxk95P(Lkj8rU?E>gB zpyJZ>QPU~E!nMw60U&5ac0+QJv;FcM%wI(JfH?&b=N&(eqR~bJ1@Keh6a-CSC#d~0A z_XC*a@Un8?m)Y2*w7(wTZ<3Skopf~1^aGB4h7qAr6SNiZ=6k-z&BwdcX`n2SfZG+) z1fmDSJu7-m)=Z(iV0Ew+q3}`fyIF9CY-k_~EBgdPPvUIr9;qZO(gCCKV?dIS0VGLN zo>)jgXnb;Cy>c6ZZ0o+iqk`R&&nEGPJKv+cv5*NWNf}Q_$rStZQZ1wQ{eeJ@=#!}C zmE0t7ZEyzsAw`K{bZYrFLOd&hYt&0p#{jhP5d=aj*_^$B?|zcUzA#PzEjAA{|5?pK zVb4I6F_Wds|MfjOTWmU@9ytdk$&8Z3MV_!?+(jOaa)?jdtKwZF3C^y%#P zli%ATu6-VNDVTc}mp9w@QOjCB*tjX(%=m1`V7-~TJnE2-ol46^cvkzw;$96MW;&ts zZQaBjMOT-~SaXfznZ<@l$B+SHcEukj;_)K(QLQ&1tlM* zpmG;%?i4R$Ky0)3!`0eHXK`l0SXR`ednUr%e9kT#Dg|#0YJz@)TrWEku$iLo=(gOO zM#!BVxooynzprJiM)!+TSD!364#|u`T%N=O$4TKzr>r8 zFMa1iV5&XMZ926R{%kF?BWUpW-w-3oStnmqUIA2AsMXg|ufB#ze>hgc;E-P{;6N1E zj`a#|FdOrqe~I!)Pg29tgEh*UvRSqC+}YX2do}JaY3dp%p~~YV%+(}@Ass+_@c_@q z1w`zL`T~B6{_dtoZm=k70Fc%OE|ip1JHGQC2m+2FisL+wO1m|~jTABn&`&iuF#Z^E zUEeMSy$k2K5-8Nfq}p>7AO2X1k-A8~%{idzFxGbTIy46HXA$+w zpNs89M=hnbq?Wan4swMAa}LQ+WdutIN0rx{xDW*Nv;aBbaVhEGp+w;aK`McTRI<^m z{5@=v`Zx*!<^6Bbn9ALtj$F1=1cvZGqN&GutaUeUd;Jg%_c0mU^Q*iXHU z=i!5CJlJZX732)Lw8KCYh9-_UFQ{_Z&sDi_&4C5*9|W%Vr{ryZV&eV+d#0U@Jc|1} z!GRMt#8(1N%UHf*Zyn7Qze7j_q;M~<{VQ!@lF_?R*xTMEiN{FmNvtehOGM=<_5}kp z%Wv-rsFTFTBv#Ch_o!=x1c^s-A=phWQZ2o2`Nx3Q^)-d2oAG~BBq!8iJNTOjCf^d* znFWuTTfEYRO~$Crnwk|iBr(#zyr}j;5fzxkL&AyqP*?F%ivNTc;ErJR~0u_OwBD4LvdSBO#-`2a}Nej52Z|6 zioRvhqeFRV8GgH@uUWd&Q5iN)x;!qbt@|2ziRHWlyM~v8y{N-Bq`cV+p11mV$#(oY z8Q*gapx)sIKhsTP%=yW*vf0mP|HY2u73`Q75OsZc(ThxAK{4QP>@6GCm~ z!KJwYI!-{kqPJlj(~}n}50pNLv&%N12O=prp}yLS`#fqM8qLffyi5RF7b6x)>Ka0a z>l|}Vd?nN#&>C@T8!>}B%w2SUyFOq+L}6+4{DvAC^HWtkmrp#RzL!5rgsOs0yc$k) z&A~YD4+%0qXdyX1pfwyT;0kV3*v-(yo5MKH2n6JeJKS)}Q$loh@H(4C_zfcD(`G>*QG^v*wB?!ts>gf2WEBbW*|8{005PMW^yK;#R%Is! zQD8od162usFp>z$dolwmM~U?LPmQC(;i!$|t}>mhJu%^$q)936?GTk?`KG)O zW)uQp-C%o&11Tny;zW7^SM&&aIQXrTKHzqL;OGjoHKx?g#OMl0FJg_6)pCbJ9}U+- z;4GlGI0@mR=;2@ChXIWj>f-qpb3ul~0E8c<@kj!Nu?sg~f(V}MV|z5&Ajd$}k)n8U zIYZYN#PJ8;-8_dIjpTqyV@V;lqrHae9mK_T@XrFXVv=Upd4&xk&EPBT^OXVR22eZB zu<))nn=XiroyBqROQ0kC#-YRNHnS0I@#BTck!m7@d)I@HCIG78``Xv5vs}U7ri4eW zjI{wXzVK8jFT;j*ah&&E`NCCIVz25O8+gB5RRU29HxmUY8l|1X12Y)Ot(!QEaAu=( zzUEL1obs%*2nJ3kYf;c`_9an2v=3(kl*8(Iera2XBwIo0b)Zgf9(^=>}_^$C1%6kdAZ0uI)Ko^cd|cr^O^E zd08hSMEeIE;xu5`Y|F-@Qq$`FQBEtF`N1Kq(&+n23Jtm@;>b18dyY;^3&Tk)otzy> z4f}QQKtld?o`+4UYi0a~xD*Ucwl4q;!jhf4K`bC*(5Pny-V}o6#w<@bTTo;0oLc|F zj&A_AAuEux)vD+gOQa2N>4{&dCDc_iDTn>ooW0U&fme4FsiYk=k`oQe%f3)OCQeZmv92 zzmWkFN!*MJ4RUxAr#+c2+^=}8lH5t#Bn8Xk%O42SoQHuP@m9L`h{gnrto;X|wo(uX z+RJP^Vo?GNjHZ?IeVf0ipbbTMKnq|b+6^XM-Ec#N#nvqez*<4XoF-bZKfJb{CZyd* zt=}fc-HQ~ox!#>!Z?5M(qo2fhUf%YulVPoira4Hk%K7qJnKvr?H~R75e5Q_kbaW?H zc4l|HKj%Sc@6@)(-`jQ%Mh-&Wzj#mcyWP+XZ0I{aGa!<}R7?sKF}2f@T|6h9Zgp#s zC|@tlqZ<^U`G4c1q*C!+G7-*o>|ela|4!`WKrNI^C8TH(ghE-2KNmnCM$U@@`_Lz4 z7;B#*3eW{=aU$DKVTB%09x0!zQO&a#hw(yLU4gVhmb#=hWa1|8&8>DDTkF;)Ex*J453QK(cM$)Mb}4X z`WECUX?r>zOu8;VA`*ofJin-a7_lypp!4VP8Y?rN0 z=pO(TiD9~GO@?L|%e@di@g*$AYEn*>XZ(*##M5MMj%pWWgBZgSTlnmPx2jH7*4l4p z+|B^G!TXC+nV&hIKJhW}p5gnYMV~ywvjzz#04>R{jtw9hoZXgRcj-(kI;CDR<=w0h zh$P$j#8~Q_VCs~-TyIG6Z~(`s&CGAWbEi7X0Fue2oi$OEKc?>_0E~f0tD2^|DnS*f zC2zUnk6avCUtlPTE{MTJrBCl|VDw{zMQ$NRqksCCI7shgaudtMMkVRG*lZ~-+GOVd zNXmP-)fBV4Uds_g8P>@#`C?)@kv<@Z@~4z4hy`P-0`$e#m2uEHJ-@Z#N9&8qq@2HG zMVQ){U!DM6Sn>*6@fR$}pM;tk_i^nCwLIu4Qu#%T|6U-DgE6O>TD6784JZkP3HZeQ z0z-dza&+!J4#xcwMz^|kd63`yvo7%RO9ni$iNytJYjwT@Qh4oMt6=_5ho3piOZz+B z>duvO3HuAf>dBQwz-*P2xs*$JH)Y?6)gpZR859=k+c#wFoF+q56cpYu8<_C)htdkCV zscLWA6$Md|i~?m3ne_uEPKtBz2wkSmvUV^U#$j}!CMKedIJ6V+$EBVI!3!%X2?zWT zKM_B$wSAidn{|Q0$twewmaTgQXvlQYJO@D8p!X_LglhH8y>yTYF}68hD9m+4yvEHE zW47U=N~4keFZ$p+b7`(oebAz1Poo!nV0aBUw}IJypat1KL!b9>EX$lg+=ut@>N1e? zvtX;3!2Y4In&xdMmsOs6^Cva+lnZKXYdM3jg|&~?5iA0I z0(MX-g|;#(i}kDi`UIFYV*|#;&i_QvVWOe?*)XH&Lm;s^ND?cQKieiaI|Vv>#H1mnn2@*jvchZe zKEc>rSF}n0GG8cRETVO)!SB@gFi?i5r0_9El9jp<_ z)tqXDYR$6N5O3ZfOlFIeg5Eo&=&#;OJfdsGFy6mwWo?97Z@Hv4q24)_WCqrL zP`88*g16wC{D=W=ib*STu)nYRGXsY{>NrriyfVdmu-WfmY=KpU+D8#I&&{yRaK}e> z6jQ@9(@NA}le&Jzl3ru73E3f>WH3#CocT!IzOt1id&T5N&8x}Up}BBv)hfdL{t|DPch~vU z?F}lX&tZ67n@L6oR2a(B-T{nJxe#r`W zoM9v+`FPM_Y{~>zeSLnhj1}KqY%=_aKT3t1U`Wk_SZbd9@)?tsyJ5n}8JHvbU`H8( z2EhqNrmo8R{uWgS>5RjOs(a}s0byN&xp9P;Q)xMl_~o4C91`=c2V)2Iyw0x~{Cg-C zwT-SU1`cSak=wdu_zNVE=6Vq8qc0)1mn{YVNv_Da+nk@BFBK0EH#I@ zTLnLYoZ(fzYQ{cT_A5M#U9L+CFZXhRMH>5VEY1Rp>(PcPAUp0R8bA8xFXx^cCn>33 zrEN@cPENYN26h(A`>b8n)o8Nv7i;~ox^9)vjCynSein}~$A_w4+OyA#O4>n;mad=J z3$Fy3VkxyOCdDgaVV1?$Qo7TA~o-_2^$P^4DH}ZJA?p$SA1_k3#%_I8;zzWTWkJ zqM=?&-UmZd19F~9Mwnnr;+tKPGQ=K1A6?Gkv&{;t2@?_-EOFHyS+)!XEpsd?G|5T8 z|5}Qxq{5@6&}NwPncf2(G+Odjx|y1ZsD5x!d9QF9uTSkHID~{WfsI;PRP`cK8#jX{5$z6x*$JXt!2omGB-Xlre;|QSOeSG|+6jrcblO0OCfo0%p3g^jQkvK* zUHl<(O^mO+1{tc|j@B_j9M3nAhmVe~`BcKJG-H+Z^b-K^@u;b&(eTQp#qoz%cL6VZuW+6S=Ma5z zV-(q5%p5;6tlT&;gz5ZzeFJ$_h8;ddm2UD>eOXmHUX_vD=2@W|_}_aL=4 zBBlb*8=?O6kE%n~rE~Ysr^mTYIEKAs3mrrW853icN^?qhPz~=HpTl{kC5t=gH%w0# z+X#>C&FoK7wGB9#c{zjZV_@L3du7u)lFEU4p{hl3hEt=shz7K|Vjv@TlsHIt$~rl^ zSa+68MsY)@S%jvOMzGF``6*8*NJ?R5&nAusr#BwYoZu^YOGC8uvGI1ZuR2qclh;ir z0n!>#cNFRn=>0;^FwOC^ePx24H@EC}{4J80k&u1hIx&$Mq()3HuAysks|N3%MHY-s zYIPDi^eH8C4KhVxuvm57RhI02MizT6-O3KFmsqzo$G{55tCdwkfJo| z*;Ruxv_E!ojDMXjJz+WDb*631{oD|^C3+2kkqHZVQAjH;7OIACUS26|HqYGOjA5Pg#-t{nXZ?m}*|5%sp{OQZY$D=qV!}aZ;w@QGT>9h7W1Vct`;W>cL!vr2PYoQBmwP~|sTSIhK81}k*)A)7Y z{bi$g={Cw}l{+qBDe4VXG;<6aU~lS*=c8LC(g;51?RqjsPI0>M^qLm_f`AfsSOP6K zLnNrU7HDkHGIa6WZ+;i8hX0)zq&4c2f;CG-H6RDADG#O_IbuNhCN;EDxC6Q_H_93S zXhW~#bP`a?KaLuS=qZ%>R7#|P6C@q26}Xfu06pH=)h{~0sGf_Tqdfg!Fx?f_&eAq% z$u|Ngkn>~$I}os~+A>f%tuscM94YNM1Ya6nCv#>>ol6K%(Mcf3lK zXdKUtxOWKE0KrMbc9d!5QMM5@FRDv@y;s1+mwM4jX}o?@J2NfvPAkuRb&P8=56OOg z_h9@dcF~`5whoD|Z)eK!$$b?=YH&_iAH#^#l%*X!BYIIm2-;=I;6)z00r<%|q&akn26ppSI=3 z4JpfhZc57vUbJmnm<|Vi?F|}I!Nz8r1xLwN(-;SrG3yL6v&;v(Lv^$9>CJI^8LWWIYDh>e)#}~YPnQ5#6MlX#>)WG z25wt8&A7oet3bx?K8 zum{aD`CeP2aF=v%qp+p`_n$~TfzB{iL;X(3tJI;z@~OK;sH!rH{qm{3GKAWyKa*#e zwNq4o+UyGbU6%H*+fgb;d(9d0IH0cP_Mqy_2MH_k^2B?`ps1=H4T4aTsZ_fr#>P=J zjRzS(lPOySdpXhI?l@62xgsNw@1+e+n0{sqfd)mq0D)e)Vo8Kjl@96;VhyZ?)P@f5 z&-O#38Tk3%p-j;Bc9>? zhWr%3c7e%HNVYBZHzO|099Eo@krEUM&*GdAZQh68B+?JZO>jy%M>$fZ3tLDSqO<#f zw7bDY;Co}of_pW@hBY+Q;&x6LX=l*jF9)?+JZl_v!~$B$RK|=;1C@rtGz(Eg&omb} zq{nm&vko8P4m<|6!7bk6967~-S|t~ofYt#b6fX#u7u2Qfh!`$FN^}<<8%R9>#Q9Wv z{&f!gwR7{eVKVgvj9zns_J8^T41bA&|MfN>pXvJ^|9`rzH_$~7_63!!^A}^mH#XV! z9kYdv3=r-mM+eQJ`~>e&*ozp)OOS4soCLI=23 zA)BS(?mfBtgJ`Z|(QPMuL15qngE(xv;b5clis46g*BVDq{q79g)Eyo(Nw`nZHA4$Y zWLMkyYv~M9?RSuZ0CTVc(B~KN!xx*cw^|Cw<3%s2nlDzkB|UG2qkk>p2+xGeJZ^ zMO9FlO3=t$PuWR9&)R`TM&HuR&dCUhRzOTp!Og+Z$V$xG*arVE;3IEjV)kt?x#5%Z zeX~496!^3<_J&6Ge>og-F~e`l#mv#|d#8evt*xbz)n9yu?k}i9`!|)Kk%NJ~nXRLZ zJwE-vQ5Y3`hJV97->DRBM8pK8^lZNYn(tNrO~x?%pNP)?R@~pJ=>C6JC1m~0&-_(P z`ya(LqWH9b)qQ(rde)AA5AEsfshMgO0z{{A9Z>Y02KLM;EZivJ(3h=!hyo&}$Vk(nN!o`r?(8yR9@`%4t@ z{gvv7&(6U9AKi}lGz@>OIsrXfQ6n=G)9=1R(W?F@{I2wy$TBnFvo^6b`tB{Q!uL5< z{u}(Q_4}*;eMS7s|C7h3mC|!nF*E#TkJwq6{;SS^ou|Lom&RWef4jr_R|-8H`*-|z z>UaF@HEQ6qFf#uuX8MkqzS%0~@00g;?C(4_`oC+~nb^LM!ty=)JN~ZfJEr?5X8hOs zzsLH&ZAr%ezOMf?KJ&#UTF4VTjPjE{APc3(i>2wVo&5EzU!=zKjE zfHS_z+5X#09IPkR>Z=kSYydJCEKZ){rl%~d1vj$JZtrQWyyq_8O*U7B8B`h~p0d1+=NBzKIk|fD5OxyWP2y`lCnfX9(Z0(;6Rl zJv9pSW3W5wGL52X_YT*MUd9(ipC3JMhmmGMLaX~*$^iG*vu`|%CB1DMHR-4KxQHeb zSzoGWPqldRUQ~;`*-8wJ*L$5`cE~wLv?X1(&N~K$w-KkBWzF&%oW-_}4T&~j%s}_y zq^?uRNr{tRH3wN@0A@?aAK4N|QdBs)&(J9ITSV9pIpNYrL7kXCDa}0;_ zdB^Jo_j7j)714@30mwSMI0GsSeJns2vD8Km=Y38y0lb(DK>~WL#)rJ=MCEwScs0E$ zqhG3HfLu)C_DFVH>>+#_{uyH!M&zp~{U31|tmV=TKxx~P88-+Xh|@nTYyj3;&8TQo zR2e|bL3hT}erXhUP$vA73w`WH_Zjq7xZHTztkC8~GE}*@_ippJL1`F44kgo(W(p+- zvwiGAvW(?515{ZB`Q0g6Y(8KM6K;wPiITJ#FwA$T6S-M;5l526M?dJleDa4mXiO$E zv|ZDGj>FFwfqC6)5}dCK9{im7Z3&9lxR;xq<&jG}OPTd5rZ|;n@*_(3Rbl&`-V@M` zZU!irH>|MWpurQ6ewSa@OzzUtX<;Q&*X_NV0E#8eWvBZRJORi{$h&^sEP8E~%&Ba; zT`B1maJ{7HwkKVn9kIFJ=?w$Al};oXCzYJEWV?;R1HvV=YY6mSvY1{g%Hr4y^LLLb z^h~MFRr&{m&Exp99BrkRmj|-5FtQ z8{IoBb(tJ4&dL^HdY9)pQW=4X6J~MXjszqk{r9id2En#$^-cMyKGZge;}5l_s7#{c z=vow8z$`vBOxU$$(7rRKcVOjhw$cpMII;EshilYHr=%epKL+{V&=Vkn?{ka^!0I7Y= z(>x;3^HJ-EAzkcf5$Yu(_JNwYaG^m7rr%(8%Ki&I2?dmP5$j zuz*cr3XhpFWf{{^lT-kT(?R3r&LOfvgyfL@;b)#K*eicj`s5>O9?OQGTC|M1hhvKn z5QU03C>OLKP%oGjfhi-*AIJ$=k|QIDA}_n!V4Zz)_V%2{h$0k~R_b*O|B@u^}Kc1qa2v}B@^?I*=j4mcxZ zy<+I#$yD~!aD4!buCaTQ)<-c@i#DKI=kp-a*u?n}XWP_D+N5mXuDuU2zOZ7ms%tJj z{D4aN)q>S}xuA{b$VI!g58U&S+2d|6qM|hQ&zjiT@8h$$k`U8hXD}V! z7MrmXvdP0V7>KVeb?y?JW@Ax}pTDV;OR9`{u6Kt!zLv6US*tYlx(n4JmW4_+)%nob zV|tXuNWYGrkAF-$WF3Y*4WNn1S!Ih+IYU{9aymG}w;X#QD~nPC^%<#O!HQZ)U!|Xj zJzuZ0PX!g4PshQ=#RwdqI0z6Yq#%d+vd=lY%99F2nMrY!ETzwf!GML_Mv1;?sgg>> zHh5Wmtru%PdpG4c8@-XVrZM$MDwFo2<-KZcH&-}S!m_f z71jTYpWhjquw}=Q7YAd*iJcMRDpbes^=AnAw2;COFw%$A;4ShmP!V*$7W%7!8DM~*f|5vJ_Qn% zl@(Mp-mdedBO0H;c{$oyEp453v(%8ph$E~jBWgc=rNL!+p zTg6O|^#Bk^s8$P(t@qb6X%%PqH0gciEWSc2vvD1tK33}PL)s(p<*TQu!<@#<4|YCH;Bm^p_3 zKq!gUbU405%gV{qeL7>4C(dz)5up#g2h}Nb z!ysu~JF%Cv*G^n)IEYB-1yO!UO(oj`!;RhX2>Shqa(Aa07vt&ie9wmYoWs>{uL&&+ z!^2a1rSyF|^&mL~c}elExSNzDvx6wV=@kvjg_e>=BR<7*`ONEU2I(zG6Di z%6ks2zrqw$&;mARWm^TE$IK8FNw7T4a@Hy=6~6v7R1HM`2%Lr4gbh@OHXCm_gRkW{ z^0y3vgA8PnGou1I9ro=g1+9N^FZ@`W0K-|d*D|_u^?~*oi1Gw#&0tHsTG(%4)R#+N(Z%C_-r4N+{0g0aIr{aqmJbK4cR1A?zG z*4_DIlrKACXXgD=%QfFmZB6Oe7gR;4&L+@A$UKhWSNW;!nY2)#sF_lh`_qBe5r&2- zOkr_Z*N0Ghqj>cM)4PWUaA~OHvX8cSJne@Hmhe6nIj`PNyN-q_&>nA`oH@H+7j>Su zIydKC3h-9i9z^vSHl3yTZ{ z3mSN8Dk5T_Bj$~_g|)7`za%|BuQ%A}nH1K$D)UrkC_`Qe)Xo{Qq&mrQU(NtjOw31+ zIL6fg$AMJSiQHi1&P^3J+4zJbGDdql->)5=1H*E^LMl8r%D7>5kKL*+9Glqn)Z$Ec zzn8|&rp@L z8v*xv{4&jI0=gAz`~xYHbxe%7O9KnDj*a;r$hF*ZcbfFX1|<3f)AnUfdPX8ebPO#m zq&8yXhfAcnSwCU{b)|X>6{*QfEzhOf#+lEf2+xazGwtmyuP2-@>!a&Ns-$Y2ZqGsW zlPH?szcsQdOV$~BJxo`qt~#H_>I61_+9>;652E2Ic8@|G(dzJIBZ^IcSNwW`cY(JC z3w=}@6)Mv(lG0-!HjVz{Cxy{g{)0opZeF<|C?b&aQFBd%F(c2lAi5=APH}zw$S-P$ zY(+SPlwC4MP?ZsXmAu`NR=DNt9U=HtmJfnR%-$GmpM*ktS^-1DC)22w?GuuB(qY-z zIdt(BgDVD&(u@_g*7i@tgRWlt3u#y6SH=<|=lCiug+CE}?8Tiw;vkFug7D-+$6by| zzEx!thqAw^i48j=SKm3lk(G7l`YN(*@c@vwHXSi{SOtHF!f(z%6<8#BoQnH6nOmZG z3&5}SX_sqIOB4@R9LB`Nrm9_)7gp-PR@@B-zsijbWgcg)wF%>TcFVi#b>7bk->>NI zX`gAIWI=mBO@teif@w3n55Jq{!*xJRnlbHd$e%$L*#lX_}g6V$Gd?GroEPUfj*#m;CwH>?OZju)lA_^ zhUncLjb-G6Gs8+)%cG0`%BM*%omVEIF~{0;7jtjEfQ1k(=nzgGfj_>2CNo3kKe10? zf{GF&1?LQsZ3ER(4|-d$0t;)IwtO0J1M~1cbQ{e-p2L`FD{$RGKe%jQ(U@McT&W9w zGO*dwjcnf9z9KiXx~eL#P;Gvj3-Nhvu!5`X4y+KA2^W-%1&L}H4`U3$u&QB|w5nn6 zM6nyr!$LgGEbpg=58hGEH;xvVMZ!r1X{1@$%;0U5oQCW( z)|j{)or@E|0fsz)I)LH|y(?iLu_xYHcr&h_JVO(}5knl;_YpcJUckQ67+iOo{M#4d@#7!O+pN881y*I*Et zbH`&_xu;UK_M5!CI%st?LZx$=bzRBq%ru%G3~GBV!Fv6wHeMqIkY<(M4ysbbL=?ir zSWA_~sF9w;R!5q50lu?Z1urV3G)@LUiKL5A123tn!pMQit_f|G##5fCRrmSVZ9L=5 zrnm9v_y-ndLBqUCRYnoqYW4)D0aF*jrwXKR3x5Wra*C zW`?~0Iz8>&c3q$C(~PJHl@M3&2Ya{o;>}Yze`FrE+<2aO-n$%sq$3(eU{$pUJpD1z z%~;COt+w0Uq{?j;mcw+_sMR}M1)0L|Rct-1BMZ?UX=9poei9?&h$IxLFZu|_3);Gz z&eqofnRK(j+X7z2kFT{+Q3h4 z#;wcXejU+JDC&A5@1EMyFRjdG5a?_;E2V*9IoS~#-a6fQ({0ABz+;S~=}!MDHJjfF zSo_7>34D?*cm_Z6Bt!*kJo{Ky5#J}@I7=Kf!_rq`s@(3@pn-0mK(}wKHzKmQa$mO$ z0c%MJx4J)v^2)G+Ijpog9zV^yd$;fQj!QfPIf72w)`~WAd?1~p?cgB$&AO77x$B{)$sM%=aeZxCPKo9ohPqZUEbU4&tX0D!E zYKy_r5KOzX)pARD)?HE`@Y6=~#itJ56wm#@mAZz{(?IUIyV=Ydp4a`O#`hcZSE3IF z(wlgUb@j(#Z>fT+59y=%N3rAv*|A4tg=3ub)@H$z@GmR{Dyu2?aZ;oNCUhcdgDUF+ zr$#*TCRu5;)@lJzT(7Ix?H|69L6Tl%IFx9Myf*_wz%VfE)zoY^MGf`efA-fNt%hBi zl*%rftmebJP*9IRXg=90shqhsyjUJu-Wiz0q2>)oP&BfP`HIIY`*7GIc?_~@dsNMd zxlyZBK@iAJPvW7ipOv1Hfnqf7oYeOE?5<=;wNk zbEy6}J0f>WuefctCWZnPCR}HB89W+_XlUsM48udCxVLpmb?to$C_g(a5#3g*YDpb569F${<}AS`H;hbG02f~l$NQX( zOk7$vx}lrTPM4QgyK-qV`F!T8P~``zoShpeRftz`wD7JwU~j3b5%nV!SkbXG~fRb$*U)34RT{iVyti@aPpll9v~Jn zBrnZjAoEQlB6tt(BS}ml4B*Q!O|u@--n|yipbH1ao`L(*2V@ey(hQ5(pgRYL?AeX| zlbetxZmbZ>EVV&-mBLJ)fCy78oSPbv=)h3axHN^*qmg<<|D(1$qw0YFCzc=4zNS&j z={#uG;L zX;tjXz?7WxEa6iL8N+fF;!{?{xTU1?!@?#k8BD?Q73P1ilLkx}MwO6(N(5Gr{Q6}# z^NJf8mJOp>{1!?OB4zGM8_f7B+NCAWfHIDs9JJA4@3OnT6eWORA* zyz$XwWm)CK>eyg{rC38mw~AqbZSK7O5SmBy<=K~kZ<1AVh7|p7((Mo8nL)++EA^W0 z^0YJNX~mT~t@>J}*)EfuI32?)Lhk|LC;8eFAn#C&SC9729gl7)wbIY;dnRZ9#k-w3 zQHsQAqs6wwcvg6MbCYsU7c8dHV~}=yM&FIYhJcOJ230;omhw@{I<`q;h3G{~M_;wl zfhEgB;gCsldJH9y$)9VJ(Xe2q94nKVBi69kFlUM`v1QEQd&AkpoupG^{R|+J)ulP6 zWeAnIMReu;X}Xhj(R3RYmM-xq@8wyn0SK3xOr@9Kj)#TeUs_q#d=$~ru>y6jyE>5P} zdxkyZ;k@c-ZKZP#&_mLK)kKzsm%XO!Z1LJ1i%;+q;Q5;lYF&7rh*>6CLD3h#vrnkS-y^2=92S8 zbLH!pBr)}5C(<^sqvh0HCM_-lR@B?nWGzahE882v>2%&wTYXVP2UYRW$Q2sw?-=eR z4okM#i=N>E2B!x_R)r-(G?K+b)`~_!J=A$MyTKD2OD(_h5p#cnB01g#rAMamDNV#v z`>hx*e6@f;JxoO3nK-I(_!Nn;u12!-Qu|@Z$EUo{SQuG>J3NOKB2b6>wKZ(N8L0kY zv=LtexPjBxpgP3(6XysdF=8Ls!p{IW%9fmYkGFPlRGBcgrrzBrb*?~>skgS}Dzvuv z#|CImH8ofKy`J`Q+=)yEv+Pq2?A0gUI;~bbdzOe)691O7URCYob^i0o{5`m=THWOa zyd_=6Kww3Q0)w&3AMaQE0X|vm36vc>_gvboSjS@bTZ#?C#LvoN^kA#-Voj(%tW|nh!5AqQ-)XZ3j;FSQ5pjsE zf}vK-$;Sr2Y!kz4KNUvuf(g-Xn#c|m@zejSnKOZgs{P}5MI}k3O(y0g8QU!P&e}o< zC42JPD%)7HkFjLQ8eVCTlBHL?656D+p@dMDEG_<`EQ6%1y_LQHb0=l%fBK*QIsbFs zd(NG?^P6X$`z*iTeICc>_kG%eJ`{03>_(2nwa#Tb^L7|fNRo;E0j5z+g0{~6uRO}1 z??2fjeYf-K6nUxkMS+C_CHiacUuaCXc*2QJN`n|h--lVI+tCHyO2ae6w zp=!rh*yS)L&mZUGz5FVDLXQOgut1FsJ&sn|8gV@8i3C^7RPUK(i$}k#S|#4w8#vUn zZ;72}PZe4#1poO{Qz=6_9yTV{{8r$YuCml`@gO&IZSDZ6a&7tclP3-LE-LrPO3=<1 zTgJ97P74ydzb^X3LoMUskce}Jznj{BGU(asX69|;Y~*z{S)wvs)e}}ecS*8*Q^A(# zevcEnTEZPom*QmQWUv-4f5jb8u4TVIWFk$P&WqbQd-yLB?HOTlz1`hjj`d~I**aA00^gUm3m zo36TjCUZq()>IlZg1D1UM%rIFJHEkCL-q7+y-OGK!W(2h;r&uCmPnI?Dlde$orX4Q zKY5Ee7$g}f!g^AMKRbMn0au@S6He4KG;`Ig3=lZ8Hr*zYHh9v4he`SVNpuE(U%%x|{Ee27(+ z-q0#9Y<_CQP?fCzmN{vP*Rv7OxV6hzd_%m5oK>dhz5T{PuH>yohQ&3J?ar7W{Su~V zb?CdiF~7;G+u0Y|4?PZK=EK><<38TMg^yK-LmD5=H?1vk>`}TZVb1?)KsBSleEsV~ zcfWR<(S4jYbv?7IR`yx1r}L~R_sIF=%dGS>>l;iu-d~_SH+`tL$7;$}mOrgQg6O(1Ywo95qGtqx{8Y}j!O`=MzelL8y`_H|Tg~SJ;hPdaglddVbV{&wEy%n#c^)DOU ziW-aWf$4Rx5@S4?vsi>;oO^S?wSc%$_T?h%hK^>>A+7$t!yREt)X}Ux5r2{NQ$>c9 zuE5-3%2>XT_D6BCcwV*A`!UPE2<|K|@irM>{HngIG-OafGwh)FCQE34LM5MONMk!U z48>U#pGy=@Y@!uU^qVVeNm#wA`(Dt*HD>JF?h9U>iN%GKUH9{<8;^xpoe(L~DG9J? z^SU*%T4d@^wg)RmkVoN;^*H~ei)KfPb)F3hvBca96M_Of+2@Z8NwCE72NlnDEYIl(aGl`t z_*$x8=z1)HVIiF&7WVd-SjIW_$T-IDJlhx5+BLGBW$Q3h{m!V1ui{zmi1xCSj*)JS z%wZei1Hniwln!G;zCs9f`0a=YtAh5RJU5no85K>-O%va1-)0o>_koNQcD+R0ne?2F zdirqeVJT_#t>dqTB6Oxa)`)hGXvm9pj6fCJSU9&GMxjMF+Jh$dRtAZ;6xC*Y&?)i9 zw(Q$A;8eU5b-43xG8?<0zjLI7KY3VrS^xF+kE%VH*eR2ir*6&e>**pDZ{_ZOYT}_g z2r3kmrR@+2GDY2O3axc*F>p9QcDr(`Lv2%D?t03VJJKTg9X=x09Exv|a%3E6FAa1I zj~psXqBB0>;!gKIG3tv8NDOtLUOV(+pK*=b0i0h_o!=PticjSggL^~Lu%W&RUC>Y< zL*|rghEPDUTNxwsMlhQprSQZ}xPrlY@cBIM;H8Ok?1qey-GW%*w|eng+AUep?tax_ zC*mWZ;ID|=@k-Az4dC0LP- z%5;_c5WQ4>gEYDD$!@)J@vw_wNnIZke|# z@Mq+Rj9Vw3QQ)tJtOks#^DN6Z+en76H`{3Hz_RZQHDRlq6t#@AT)vxf)t7k=#9v_I zN}RK?8K!G4=3jTvIMwh8tGTzNbIZ+Bjul(rtqje!f0eO@LTw9I-dEk&7@Qlb>?l}n zL`cGHtRY-lD&dX~mJvjip1?<8)|C@ZFFUT58lIkP#iPE#!_|$s=Gs#fQ%==a@Dy^f|T&ac}0M|IG{*cUhdI^$sU z<*OKWBw*FUuS1ceIA5N!%Rk}&W^-uMU=)D}K)+vsoqe^<8o_!3%j#A)?66L0*m2r8 z`{?IMv0AYe#m>9)hb-k2YAB^|u1k$(hAa9@ceVbVpm8ZXBPEkKe9p$iKGXd{(|zwR zjBUQEpHBGftX=+l0KOW-F6`PF=VzT%`|NMo)f8G{ z)y6DzlVtw#ul{j`c4@&1Z<3F~iTJU`j*OVel8M!%+miBE-e>3%qgTIJyl&8@3+_A-=M|ZCow%(4W49-eUui9C$u6FVMFjL> z*IoJRZtWCrR7nk2ldZVEDJw9>f~>pvx5MZHf~D8g-Jllgy`Xb#kN+q*@#yu^3Z9mA zO_;462@z}~l#rX|BR9;kHxrmflcansixE}j7GBuQxFV^VbGr0~UY>USHm%zzqdMZ% zKg;T?F7{r)^D&<*EiFvE+VrwiE~e?T|Muo^eIG&}&VthL!4hZx)#0KWg#9?R#JQrC zlWaUU7a2m7-To&=Rar|l0H6p1 zI}P40U{in6oBx_g{U(k#he_qc$Q)c2>A}Kr{yCGnpfMn}I4mj*&1X>o$th1H!)OA9 zMg-DyFbqJ={|k%Cfj<8;i^`doZ!9Y4yD69_1S=&XBq>b8b58J)1RztGOyGPA!xR9f zl7D#~1XwDlg$g4T0@l_PO`+fcj7mYQ6beGNQV>WLqH!)s;F3%t11rE$5sVcX5gLU< zx569}mPEpH-pK?K8V1^c2pvm?i9hIB5VWA4?*uJOL+nH}3A_WE z7NE(doNMGW2|&r91r#u9pbem>v+>zko}dOG-)WClBcM5cJKJjz5c|8+C=occ_cwQ* z5n{xtD1kyaD+@G%Lv<@b|FIZg`=^V|f{15j0n7x@EN7iD&VEv80q}WRB2o*mzth0D z7K8?4%85@c;F8lps|6hMTZrJaNNC^}b3t-WJ>NU|t#{v5CuibS&4u9vQ1WR6n}n99 z0Le*YRKEkq5Di4eFJus4gU20^?%)#3gA&Kh(DVy2rDa`@mM$V)WUS{A(w3irLN|hz8j)DZwizE~M_U zRnKX+)GYjZ>44)d^uIniyNmUrst0)C#$bH#+J5>gWGKNg@jU{vGJ9UP3s;f`GL zmNi~?QI{6wS=z65+~h`f}yduFaS z{0S>8-iap&o0(~wEy6YO+AM76?49Me>G~#Di`!>!jii5YbYb<8uvc;M0NECtN8Yrm z3RwDP9+oOVgcV6@!Dv}9T^(JRj`o&lPZ&$UW2tgzJ0{cBeH#wv^y53M3&U2L7pKc` zvG%Y6qOP-l=4x$&wzRNv0Jr&G1t`k7fxV0KZbS?hvwItahsbyuo}fEwq6ffi2J6a(G1McAkxZ z2U#i$Y?Pmrqk+MjQy=(129KI~Hki1;MkEnIkj*Ox;eo@=wGm0kCT@-mA`rkDJ>Lc+ zTZwt)h}4B`CL!VV@#$>Jy!ov&N0^xx(Ehq=U^XHsEgTYp2Zhd$l2sHn`5T3lCZv+}? z!TbVWqs+Q5lVJg}kQf{h>HYRTbl|%n+04ZS2|Laj&&fdJgdJzk;?A^SFgb1xK}49u LD=Dd}qsIGh?@Eqh literal 0 HcmV?d00001 diff --git a/examples/paper_runs/paper_05/revision_evidence/figure_revision_validation.png b/examples/paper_runs/paper_05/revision_evidence/figure_revision_validation.png new file mode 100644 index 0000000000000000000000000000000000000000..176c4cd46a5319501b376f8be8d4b1657e6abdcd GIT binary patch literal 123546 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

?E?ZFC^-qyX%oJjnO^p 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 int: plot_syndrome_heatmap(rows, out_dir, manuscript_dir) plot_correction_match(summary_rows, out_dir, manuscript_dir) plot_correction_volume(summary_rows, out_dir, manuscript_dir) - print(f"Wrote paper_05 CSS-LDPC analysis to {out_dir}") + print(f"Wrote paper_05 compact CSS/Steane analysis to {out_dir}") return 0 diff --git a/examples/paper_runs/paper_05/scripts/build_css_ldpc_syndrome.py b/examples/paper_runs/paper_05/scripts/build_css_ldpc_syndrome.py index cce4820..990a1aa 100644 --- a/examples/paper_runs/paper_05/scripts/build_css_ldpc_syndrome.py +++ b/examples/paper_runs/paper_05/scripts/build_css_ldpc_syndrome.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""Build paper_05 CSS-LDPC syndrome circuit artifacts.""" +"""Build paper_05 compact CSS/Steane syndrome circuit artifacts.""" from __future__ import annotations @@ -93,7 +93,7 @@ def main() -> int: writer.writerow({field: row.get(field, "") for field in fields}) (out_dir / "circuit_drawings.txt").write_text("\n".join(drawings), encoding="utf-8") - print(f"Wrote {len(specs)} CSS-LDPC syndrome circuits to {out_dir}") + print(f"Wrote {len(specs)} compact CSS/Steane syndrome circuits to {out_dir}") return 0 diff --git a/examples/paper_runs/paper_05/scripts/css_ldpc_syndrome.py b/examples/paper_runs/paper_05/scripts/css_ldpc_syndrome.py index 8a32b43..935b60a 100644 --- a/examples/paper_runs/paper_05/scripts/css_ldpc_syndrome.py +++ b/examples/paper_runs/paper_05/scripts/css_ldpc_syndrome.py @@ -1,8 +1,8 @@ #!/usr/bin/env python3 -"""Small CSS-LDPC syndrome helpers for paper_05. +"""Small compact CSS/Steane syndrome helpers for paper_05. The default matrix is the Steane [[7,1,3]] CSS parity-check matrix. This is a -hardware-safe LDPC-style proxy for live syndrome extraction: it is low-density, +hardware-safe compact CSS proxy for live syndrome extraction: it is low-density, has unique single-X syndromes, and needs only one ancilla per Z check. """ @@ -140,7 +140,7 @@ def build_qiskit_circuit(spec: ExperimentSpec) -> Any: try: from qiskit import ClassicalRegister, QuantumCircuit, QuantumRegister # type: ignore except Exception as exc: # pragma: no cover - depends on optional environment - raise SystemExit("Qiskit is required to build CSS-LDPC syndrome circuits.") from exc + raise SystemExit("Qiskit is required to build compact CSS/Steane syndrome circuits.") from exc data = QuantumRegister(n_data(), "d") anc = QuantumRegister(n_checks(), "z") diff --git a/examples/paper_runs/paper_05/scripts/decode_css_ldpc_syndromes.py b/examples/paper_runs/paper_05/scripts/decode_css_ldpc_syndromes.py index b342050..b4996ab 100644 --- a/examples/paper_runs/paper_05/scripts/decode_css_ldpc_syndromes.py +++ b/examples/paper_runs/paper_05/scripts/decode_css_ldpc_syndromes.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""Decode paper_05 CSS-LDPC syndrome request streams.""" +"""Decode paper_05 compact CSS/Steane syndrome request streams.""" from __future__ import annotations @@ -18,8 +18,8 @@ def parse_args() -> argparse.Namespace: parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("--in-dir", required=True) parser.add_argument("--out-dir", required=True) - parser.add_argument("--decoders", default="mwpm,uf,bp") - parser.add_argument("--bp-prior", type=float, default=0.08) + parser.add_argument("--decoders", default="emw,uf_like,bit_flip") + parser.add_argument("--bit-flip-prior", "--bp-prior", dest="bit_flip_prior", type=float, default=0.08) return parser.parse_args() @@ -55,7 +55,7 @@ def main() -> int: injected_raw = meta.get("injected_x", "") injected = "" if injected_raw == "" else int(injected_raw) for decoder in decoders: - result = decode_policy(decoder, matrix, syndrome, prior_p=args.bp_prior) + result = decode_policy(decoder, matrix, syndrome, prior_p=args.bit_flip_prior) correction = list(result.correction) residual = list(result.residual) if injected != "": @@ -149,7 +149,7 @@ def main() -> int: writer.writeheader() writer.writerows(manifest_rows) - print(f"Decoded {len(csv_rows)} CSS-LDPC syndrome-policy rows into {out_dir}") + print(f"Decoded {len(csv_rows)} compact CSS/Steane syndrome-policy rows into {out_dir}") return 0 diff --git a/examples/paper_runs/paper_05/scripts/decode_gkp_digitized_syndromes.py b/examples/paper_runs/paper_05/scripts/decode_gkp_digitized_syndromes.py index 145c5e9..576fbd0 100644 --- a/examples/paper_runs/paper_05/scripts/decode_gkp_digitized_syndromes.py +++ b/examples/paper_runs/paper_05/scripts/decode_gkp_digitized_syndromes.py @@ -18,8 +18,8 @@ def parse_args() -> argparse.Namespace: parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("--in-dir", required=True) parser.add_argument("--out-dir", required=True) - parser.add_argument("--decoders", default="mwpm,uf,bp") - parser.add_argument("--bp-prior", type=float, default=0.08) + parser.add_argument("--decoders", default="emw,uf_like,bit_flip") + parser.add_argument("--bit-flip-prior", "--bp-prior", dest="bit_flip_prior", type=float, default=0.08) return parser.parse_args() @@ -70,7 +70,7 @@ def main() -> int: injected_raw = meta.get("injected_q", "") injected = "" if injected_raw == "" else int(injected_raw) for decoder in decoders: - result = decode_policy(decoder, matrix, syndrome, prior_p=args.bp_prior) + result = decode_policy(decoder, matrix, syndrome, prior_p=args.bit_flip_prior) correction = list(result.correction) residual = list(result.residual) if injected != "": diff --git a/examples/paper_runs/paper_05/scripts/decode_repetition_syndromes.py b/examples/paper_runs/paper_05/scripts/decode_repetition_syndromes.py index 196c867..c829e24 100755 --- a/examples/paper_runs/paper_05/scripts/decode_repetition_syndromes.py +++ b/examples/paper_runs/paper_05/scripts/decode_repetition_syndromes.py @@ -23,8 +23,8 @@ def parse_args() -> argparse.Namespace: parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("--in-dir", required=True) parser.add_argument("--out-dir", required=True) - parser.add_argument("--decoders", default="mwpm,uf,bp") - parser.add_argument("--bp-prior", type=float, default=0.08) + parser.add_argument("--decoders", default="emw,uf_like,bit_flip") + parser.add_argument("--bit-flip-prior", "--bp-prior", dest="bit_flip_prior", type=float, default=0.08) return parser.parse_args() @@ -62,7 +62,7 @@ def main() -> int: injected_raw = meta.get("injected_x", "") injected = "" if injected_raw == "" else int(injected_raw) for decoder in decoders: - result = decode_policy(decoder, matrix, syndrome, prior_p=args.bp_prior) + result = decode_policy(decoder, matrix, syndrome, prior_p=args.bit_flip_prior) correction = list(result.correction) residual = list(result.residual) exact_match: int | str diff --git a/examples/paper_runs/paper_05/scripts/decode_surface_syndromes.py b/examples/paper_runs/paper_05/scripts/decode_surface_syndromes.py index ea856da..f3583e8 100644 --- a/examples/paper_runs/paper_05/scripts/decode_surface_syndromes.py +++ b/examples/paper_runs/paper_05/scripts/decode_surface_syndromes.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""Decode paper_05 surface-code Z-check syndrome request streams.""" +"""Decode paper_05 planar surface-check Z-layer syndrome request streams.""" from __future__ import annotations @@ -18,8 +18,8 @@ def parse_args() -> argparse.Namespace: parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("--in-dir", required=True) parser.add_argument("--out-dir", required=True) - parser.add_argument("--decoders", default="mwpm,uf,bp") - parser.add_argument("--bp-prior", type=float, default=0.08) + parser.add_argument("--decoders", default="emw,uf_like,bit_flip") + parser.add_argument("--bit-flip-prior", "--bp-prior", dest="bit_flip_prior", type=float, default=0.08) return parser.parse_args() @@ -60,7 +60,7 @@ def main() -> int: injected_raw = meta.get("injected_x", "") injected = "" if injected_raw == "" else int(injected_raw) for decoder in decoders: - result = decode_policy(decoder, matrix, syndrome, prior_p=args.bp_prior) + result = decode_policy(decoder, matrix, syndrome, prior_p=args.bit_flip_prior) correction = list(result.correction) residual = list(result.residual) if injected != "": @@ -154,7 +154,7 @@ def main() -> int: writer.writeheader() writer.writerows(manifest_rows) - print(f"Decoded {len(csv_rows)} surface-code syndrome-policy rows into {out_dir}") + print(f"Decoded {len(csv_rows)} surface-check syndrome-policy rows into {out_dir}") return 0 diff --git a/examples/paper_runs/paper_05/scripts/fetch_ibm_css_ldpc_results.py b/examples/paper_runs/paper_05/scripts/fetch_ibm_css_ldpc_results.py index efc2995..b1e14fe 100644 --- a/examples/paper_runs/paper_05/scripts/fetch_ibm_css_ldpc_results.py +++ b/examples/paper_runs/paper_05/scripts/fetch_ibm_css_ldpc_results.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""Fetch a completed paper_05 CSS-LDPC IBM Runtime job.""" +"""Fetch a completed paper_05 compact CSS/Steane IBM Runtime job.""" from __future__ import annotations @@ -49,7 +49,7 @@ def main() -> int: job_id = str(submission["job_id"]) job = service.job(job_id) status = job_status_value(job) - print(f"Fetched IBM Runtime CSS-LDPC job {job_id}; status={status}") + print(f"Fetched IBM Runtime compact CSS/Steane job {job_id}; status={status}") if args.status_only: return 0 @@ -76,7 +76,7 @@ def main() -> int: with out_path.open("w", encoding="utf-8") as f: json.dump(payload, f, indent=2) f.write("\n") - print(f"Wrote IBM Runtime CSS-LDPC result payload to {out_path}") + print(f"Wrote IBM Runtime compact CSS/Steane result payload to {out_path}") return 0 diff --git a/examples/paper_runs/paper_05/scripts/ingest_css_ldpc_results.py b/examples/paper_runs/paper_05/scripts/ingest_css_ldpc_results.py index 0cb7e70..b5fbac1 100644 --- a/examples/paper_runs/paper_05/scripts/ingest_css_ldpc_results.py +++ b/examples/paper_runs/paper_05/scripts/ingest_css_ldpc_results.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""Convert raw paper_05 CSS-LDPC syndrome results into decoder request records.""" +"""Convert raw paper_05 compact CSS/Steane syndrome results into decoder request records.""" from __future__ import annotations @@ -169,7 +169,7 @@ def main() -> int: writer.writeheader() writer.writerows(table_rows) - print(f"Wrote {len(manifest_rows)} CSS-LDPC request streams to {out_dir}") + print(f"Wrote {len(manifest_rows)} compact CSS/Steane request streams to {out_dir}") return 0 diff --git a/examples/paper_runs/paper_05/scripts/paper05_decoder_policies.py b/examples/paper_runs/paper_05/scripts/paper05_decoder_policies.py index eeb210c..315dbd1 100644 --- a/examples/paper_runs/paper_05/scripts/paper05_decoder_policies.py +++ b/examples/paper_runs/paper_05/scripts/paper05_decoder_policies.py @@ -10,7 +10,14 @@ from typing import Any -POLICIES = ("mwpm", "uf", "bp") +POLICIES = ("emw", "uf_like", "bit_flip") +POLICY_ALIASES = { + "mwpm": "emw", + "min_weight": "emw", + "minimum_weight": "emw", + "uf": "uf_like", + "bp": "bit_flip", +} @dataclass(frozen=True) @@ -28,8 +35,13 @@ def parse_decoders(value: str) -> tuple[str, ...]: name = part.strip().lower() if not name: continue + name = POLICY_ALIASES.get(name, name) if name not in POLICIES: - raise ValueError(f"unknown decoder policy {name!r}; expected one of {', '.join(POLICIES)}") + aliases = ", ".join(sorted(POLICY_ALIASES)) + raise ValueError( + f"unknown decoder policy {name!r}; expected one of {', '.join(POLICIES)} " + f"(legacy aliases: {aliases})" + ) if name not in decoders: decoders.append(name) return tuple(decoders or POLICIES) @@ -198,16 +210,16 @@ def decode_min_weight( return corrections[target] -def _decode_mwpm(matrix: list[list[int]], syndrome: list[int]) -> DecodeResult: +def _decode_emw(matrix: list[list[int]], syndrome: list[int]) -> DecodeResult: correction = decode_min_weight(matrix, syndrome) or () residual = tuple(residual_syndrome(matrix, syndrome, correction)) return DecodeResult( - policy="mwpm", + policy="emw", correction=tuple(correction), residual=residual, confidence=1.0 if not any(residual) else 0.0, diagnostics={ - "policy": "exact_minimum_weight_binary", + "policy": "exact_binary_minimum_weight", "fallback": "0", }, ) @@ -227,16 +239,16 @@ def _incident_maps(matrix: list[list[int]]) -> tuple[list[list[int]], list[list[ return check_to_vars, var_to_checks -def _decode_uf(matrix: list[list[int]], syndrome: list[int]) -> DecodeResult: +def _decode_uf_like(matrix: list[list[int]], syndrome: list[int]) -> DecodeResult: target = [int(bit) & 1 for bit in syndrome] if not any(target): return DecodeResult( - policy="uf", + policy="uf_like", correction=(), residual=tuple(0 for _ in target), confidence=1.0, diagnostics={ - "policy": "union_find_erasure_peeling", + "policy": "union_find_like_greedy_erasure", "uf_growth_rounds": "0", "uf_erasure_size": "0", "uf_greedy_flips": "0", @@ -289,12 +301,12 @@ def _decode_uf(matrix: list[list[int]], syndrome: list[int]) -> DecodeResult: correction = tuple(sorted(correction_set)) residual_tuple = tuple(residual_syndrome(matrix, target, correction)) return DecodeResult( - policy="uf", + policy="uf_like", correction=tuple(correction), residual=residual_tuple, confidence=1.0 if not any(residual_tuple) else 0.0, diagnostics={ - "policy": "union_find_erasure_peeling", + "policy": "union_find_like_greedy_erasure", "uf_growth_rounds": "1", "uf_erasure_size": str(len(erasure)), "uf_greedy_flips": str(greedy_flips), @@ -303,15 +315,15 @@ def _decode_uf(matrix: list[list[int]], syndrome: list[int]) -> DecodeResult: ) -def _decode_bp(matrix: list[list[int]], syndrome: list[int], *, prior_p: float = 0.08, max_iter: int = 12) -> DecodeResult: +def _decode_bit_flip(matrix: list[list[int]], syndrome: list[int], *, prior_p: float = 0.08, max_iter: int = 12) -> DecodeResult: target = [int(bit) & 1 for bit in syndrome] if not matrix: return DecodeResult( - policy="bp", + policy="bit_flip", correction=(), residual=tuple(target), confidence=0.0, - diagnostics={"policy": "belief_propagation_hard_decision_min_sum", "bp_converged": "0", "fallback": "0"}, + diagnostics={"policy": "hard_decision_bit_flip", "bit_flip_converged": "0", "fallback": "0"}, ) n_data = len(matrix[0]) @@ -375,16 +387,16 @@ def _decode_bp(matrix: list[list[int]], syndrome: list[int], *, prior_p: float = residual = tuple(residual_syndrome(matrix, target, correction)) return DecodeResult( - policy="bp", + policy="bit_flip", correction=correction, residual=residual, confidence=1.0 if converged else (0.8 if not any(residual) else 0.0), diagnostics={ - "policy": "belief_propagation_hard_decision_min_sum", - "bp_converged": "1" if converged else "0", - "bp_iterations": str(iterations), - "bp_best_residual_weight": str(sum(best_residual)), - "bp_closure_weight": str(closure_weight), + "policy": "hard_decision_bit_flip", + "bit_flip_converged": "1" if converged else "0", + "bit_flip_iterations": str(iterations), + "bit_flip_best_residual_weight": str(sum(best_residual)), + "bit_flip_closure_weight": str(closure_weight), "fallback": fallback, }, ) @@ -411,10 +423,11 @@ def _decode_policy_cached( ) -> DecodeResult: matrix = [list(row) for row in key] syndrome_bits = list(syndrome) - if policy == "mwpm": - return _decode_mwpm(matrix, syndrome_bits) - if policy == "uf": - return _decode_uf(matrix, syndrome_bits) - if policy == "bp": - return _decode_bp(matrix, syndrome_bits, prior_p=prior_p) + policy = POLICY_ALIASES.get(policy, policy) + if policy == "emw": + return _decode_emw(matrix, syndrome_bits) + if policy == "uf_like": + return _decode_uf_like(matrix, syndrome_bits) + if policy == "bit_flip": + return _decode_bit_flip(matrix, syndrome_bits, prior_p=prior_p) raise ValueError(f"unknown decoder policy: {policy}") diff --git a/examples/paper_runs/paper_05/scripts/run_local_css_ldpc_sampler.py b/examples/paper_runs/paper_05/scripts/run_local_css_ldpc_sampler.py index c71b2f4..2b7c959 100644 --- a/examples/paper_runs/paper_05/scripts/run_local_css_ldpc_sampler.py +++ b/examples/paper_runs/paper_05/scripts/run_local_css_ldpc_sampler.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""Generate local paper_05 CSS-LDPC syndrome measurements.""" +"""Generate local paper_05 compact CSS/Steane syndrome measurements.""" from __future__ import annotations @@ -108,7 +108,7 @@ def main() -> int: with out_path.open("w", encoding="utf-8") as f: json.dump(payload, f, indent=2) f.write("\n") - print(f"Wrote local CSS-LDPC results to {out_path}") + print(f"Wrote local compact CSS/Steane results to {out_path}") return 0 diff --git a/examples/paper_runs/paper_05/scripts/submit_ibm_css_ldpc_sampler.py b/examples/paper_runs/paper_05/scripts/submit_ibm_css_ldpc_sampler.py index 29e5112..9a38029 100644 --- a/examples/paper_runs/paper_05/scripts/submit_ibm_css_ldpc_sampler.py +++ b/examples/paper_runs/paper_05/scripts/submit_ibm_css_ldpc_sampler.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""Submit paper_05 CSS-LDPC syndrome circuits to IBM Runtime Sampler.""" +"""Submit paper_05 compact CSS/Steane syndrome circuits to IBM Runtime Sampler.""" from __future__ import annotations @@ -108,7 +108,7 @@ def main() -> int: status="submitted", experiments=experiment_metadata, ) - print(f"Submitted IBM Runtime CSS-LDPC job {job_id} on {backend_name}; wrote {submission_path}") + print(f"Submitted IBM Runtime compact CSS/Steane job {job_id} on {backend_name}; wrote {submission_path}") if args.no_wait: print("Not waiting for results because --no-wait was set.") @@ -140,7 +140,7 @@ def main() -> int: with out_path.open("w", encoding="utf-8") as f: json.dump(payload, f, indent=2) f.write("\n") - print(f"Wrote IBM Runtime CSS-LDPC results to {out_path}") + print(f"Wrote IBM Runtime compact CSS/Steane results to {out_path}") return 0