From 13c486e1f688b697c4ef1b1f00dde8e4854b3fe1 Mon Sep 17 00:00:00 2001 From: danielporterda Date: Mon, 11 May 2026 16:09:17 -0400 Subject: [PATCH 01/15] Add Mintlify version tabs component --- .../version-component/lsu-version-after.png | Bin 0 -> 37118 bytes .../version-component/lsu-version-before.png | Bin 0 -> 36865 bytes .../logical-synchronizer-upgrade.mdx | 24 ++++++++- docs-main/snippets/components/version.mdx | 50 ++++++++++++++++++ 4 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 .github/pr-screenshots/version-component/lsu-version-after.png create mode 100644 .github/pr-screenshots/version-component/lsu-version-before.png create mode 100644 docs-main/snippets/components/version.mdx diff --git a/.github/pr-screenshots/version-component/lsu-version-after.png b/.github/pr-screenshots/version-component/lsu-version-after.png new file mode 100644 index 0000000000000000000000000000000000000000..adfdb3a86c8b1b4237df38fcb65f80cfac5087f6 GIT binary patch literal 37118 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ð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 literal 0 HcmV?d00001 diff --git a/.github/pr-screenshots/version-component/lsu-version-before.png b/.github/pr-screenshots/version-component/lsu-version-before.png new file mode 100644 index 0000000000000000000000000000000000000000..b3fddec338b6b95a197ab35f29539643f6fa127f GIT binary patch literal 36865 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 @@ -101,13 +103,33 @@ Concretely, the procedure is as follows: submitted. The actual timestamps will be chosen through coordination with all SVs. The timestamps are applied through an environment variable on the successor sequencer: -``` + + + +```yaml - name: ADDITIONAL_CONFIG_SEQUENCER_LSU_SEQUENCING_BOUNDS value: | canton.sequencers.sequencer.parameters.parameters.lsu-repair.lsu-sequencing-bounds-override.lower-bound-sequencing-time-exclusive=LOWER_BOUND_SEQUENCING_TIME_EXCLUSIVE canton.sequencers.sequencer.parameters.parameters.lsu-repair.lsu-sequencing-bounds-override.lower-bound-sequencing-time-exclusive=UPGRADE_TIME ``` + + + +```yaml +- name: ADDITIONAL_CONFIG_SEQUENCER_LSU_SEQUENCING_BOUNDS + value: | + canton.sequencers.sequencer.parameters.lsu-repair.lsu-sequencing-bounds-override.lower-bound-sequencing-time-exclusive=LOWER_BOUND_SEQUENCING_TIME_EXCLUSIVE + canton.sequencers.sequencer.parameters.lsu-repair.lsu-sequencing-bounds-override.upgrade-time=UPGRADE_TIME +``` + + + + 3. Super validators wait until ingestion completed. 4. Super validators configure their SV app app to transfer the topology and traffic state from the old physical synchronizer to the successor nodes. diff --git a/docs-main/snippets/components/version.mdx b/docs-main/snippets/components/version.mdx new file mode 100644 index 00000000..97fc526f --- /dev/null +++ b/docs-main/snippets/components/version.mdx @@ -0,0 +1,50 @@ +export const VersionOption = ({ children }) => <>{children} + +export const Version = ({ children, title, description, defaultLabel }) => { + const options = React.Children.toArray(children).filter((child) => child?.props?.label) + const defaultIndex = Math.max( + 0, + options.findIndex((child) => child.props.label === defaultLabel), + ) + const [activeIndex, setActiveIndex] = React.useState(defaultIndex) + const activeOption = options[activeIndex] ?? options[0] + + if (!options.length) { + return null + } + + return ( +
+ {(title || description) && ( +
+ {title &&
{title}
} + {description &&
{description}
} +
+ )} +
+ {options.map((option, index) => { + const isActive = index === activeIndex + return ( + + ) + })} +
+
+ {activeOption} +
+
+ ) +} From 5265d7bcd2dbea0b07ef62d2eaed6c2415a21ad3 Mon Sep 17 00:00:00 2001 From: danielporterda Date: Mon, 11 May 2026 16:29:48 -0400 Subject: [PATCH 02/15] Use DevNet version data for LSU tabs --- .../version-component/lsu-version-after.png | Bin 37118 -> 0 bytes .../version-component/lsu-version-before.png | Bin 36865 -> 0 bytes .../version-component/lsu-version-cn-0.6.2.png | Bin 0 -> 39016 bytes .../version-component/lsu-version-devnet.png | Bin 0 -> 39156 bytes config/repo-version-config.json | 6 +++--- .../logical-synchronizer-upgrade.mdx | 9 +++++---- .../generated/version-dashboard-data.mdx | 6 +++--- scripts/helpers/updateVersionDashboardData.js | 2 +- 8 files changed, 12 insertions(+), 11 deletions(-) delete mode 100644 .github/pr-screenshots/version-component/lsu-version-after.png delete mode 100644 .github/pr-screenshots/version-component/lsu-version-before.png create mode 100644 .github/pr-screenshots/version-component/lsu-version-cn-0.6.2.png create mode 100644 .github/pr-screenshots/version-component/lsu-version-devnet.png diff --git a/.github/pr-screenshots/version-component/lsu-version-after.png b/.github/pr-screenshots/version-component/lsu-version-after.png deleted file mode 100644 index adfdb3a86c8b1b4237df38fcb65f80cfac5087f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37118 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ð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 diff --git a/.github/pr-screenshots/version-component/lsu-version-before.png b/.github/pr-screenshots/version-component/lsu-version-before.png deleted file mode 100644 index b3fddec338b6b95a197ab35f29539643f6fa127f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36865 zcmd?RWl$d7_bo_Bf(Hm52oMPFPH^%-aCaxTLvV+XAi;yX1$TE1?(XjH?#v;-|CO3M zb*pYo&8K<4Ja0GMefpfE@f-(eeRFYTVPc2Vr;iER*zrB)?!@9Q4ZlFcrz}fFl(!RHKZcX32 zuu(bQH?axiH?2KCh`({f(AfGDH?j7IjIo>xd?auVYWGc&&<3KnV3^3OC8p;Sk11h2 zBw-?g1xF0ehsWaI6Q6&f;B20k2};51|KxClfxNqqUPMAn_R`Wp>Tr#GC_-M25h((L zj5K?5b3Fq%MY;_wAos@_~QQ$Ar4;-Yd&8f%aLl{Ku zYbRCab37iaLBD%e-bxFrF>Yisf786VyXn5d<9%_@Lt=x(aG`L+D zp8Vk$%aY)So0*x7WMZbk=tW6d%Vj3=XbM)ZHuXZ?9d0_1j(wh5$nLch7W!SGJ3rpb zm+s(mdp&lXk<%yhrG4h|3rRFy9~&JWuR7CqCncZg>+Llf)Y@L2pYB|=-8p3q4@A~2 zbproGcj$pU7>t6?!KgFZzu<~OJKV7)RFPebIb`Z;8lC_)F;I6*pdF<4_ExM^R zSUBtOaC?!Uf2v-6U%hqh!Bx~?E~N31 zmQ!V}E;NCGhnfqPUSX1JB1{BDq4Fi&OO!S+E29*mQF{zuc8ksi3$Du|t@@tDp1FMM zK=GJjV(%i&=856Kk3@{lO3QzI9SC;b#ht*5f@${kQ7a%}EPiZ2hHTHADIaP{lJ@P{ zY*$_;xx9;;SqZcsY#^PiI&=}5F*VStAyWnc>25cCc%NF;*3I#y#=Gurg8w`Z)QcU>MWG+v0QI34%eJ3VYrPii(`R5@If=?PzIH9DOA zZ6n9TjDkz+6?4#eD?e)f<;xdqcyW9A*Ec?UZ036-jeE7s!rl6(Ekt_9r^>}k$b_tE zdVb%tQLNtJ4m-9ikA#Jdz@?#KA@Z#Tc(=|s+#l3m(yO7?xNc=hr!>)MybqGDr*S&C z`Q2xxM9X7s{!}=3b-3WEAS+9>w0C|UB;Y4~I9G1pRrLmikSB@9h*7J_{w|rv73K9{ zyvt#~tdfap%43`2mDCp!rk9wQ7m6L<`+j?$tpAl15co;wdC`GgT6Qd^QeaCI<1e^+ zQ!cE|V#R5>8Z=&Ue)+<}(nlKt_xvR4`|wO34uV1z8YM=VQTyY$x2LCwBzo4CU)#9j)P2fO5dGO8D`lt*Ps#G>9&J~?*Kzl8>q^(6y(s9Blxx)t4 zI6j4~7ginA(<5q8YjQACCkQeJ1O$Yc=r4JtTP8p1mg2NA(8cuWW9i{sUipOz89Epk zY&a!>!A9)+Z`_*rKYZO*U2L#Np&z2B7@w@xsP~}u)qzFEzp}vkV8UiRv)lAiD90F~ zjlq_B%O0<4Wy5N*iF_o;=IoRaX>Z1;yP)Mucou}t8+gL6IBfdYH8+ScIyhK(cS(ZG zE)SddS~_i6_yoc6D=%Az%Ny+LsTzpMa#vCktw=bg8mv@3#v9NGFJh727hWr)w|x@Py-7m0A{rnt$8 z!>?_E-4Zwl#d~RGl;-j+`jz4nW7PsV%$KCOA62zr$k?vU!0Q7;5m}|7rS0pZZ_(!S zIMtXc@e(0v#a`;2z|-H%aWSvFpmpXZcvPA?e8?V341EFBLP*P1T@o^c{<~-W-541e zxu7Njhe>Mjl+|)KF#L&%uon-m9{kuW;>l+mqf&7LBjXGQpN#(%5 zzvJe6M~NwUZCbBKfc;!q%p&t$1S_*K40k=v%+0-`SMUA`Lb?XD*9Z4LoM0hEoT&A{ zu-^FArKovkkq@XO=w%%5MPFmCXJh)ek9zhtM3ZqquN?gDAwl+2SCthdLEEvbTc`Dn z#^O!xb;+hd!+e?fttGR^FReg>lY6J0KI%dZ^57M|lUp&emW7PV$;QRiHB>A*9PXUA zrQ-MZB~(jF8l5dPR(^%>(O>N*L2r zIC?#nu>w1Y!;BXb-=Q38AvWWd9kq-QlZ_2cbqx=H1)eisnNG9O#^ku{OWzMHmI}+| zjg8MFXdjyu+#A+xoKH>^wJlkgSVW|UP~q};Dao=kR_P;IGYhm|LI2Gzb!_hv5$*B& zB~407W8c}{*OvrIn~z3ype0#i}s3 z=g&^QdF}HanSE6+BN|InSvcF7*%Q&WT-7TuAW;0;?J+zv|33cpuMS;WT9=f?g{^)R zF)=AxN}YkYYC)U2>7ioyK*c(pvCD@0AH&pBq}Ah;W@2BAx~9H2?k|_q*6i%fh?sVQiByZhrgTtD;I zPex;Hvfx@=4|{o?{a9T^2M}bcU`|6tX1csfo603S=$;?m2ZH(XacTPTjQ|PS!J=!9 zV{=-;C==$&L}Y+hSp`FNS;cgXfv}v-Znm^Gou8Kc^pB8`s-`Bb{wb?#`SQu4r2y2{ zA_BQ&}i-iS^WZs6jxVVKX0Y_Kzqu>Mw8bq}k!wIIFXzczJ3qw;~i#a+k2HH5JRP^+PK{F$|qC!SJ2R2 z-%)&2XdE2QG;6+Ip63RnsHv#-V8Ok*eo3H@OG!=7&c+l@sXW4EK=P7QyXaesK`Tfp zjK3OCMnEVLi-q#=Dd=K^vz5o>!$cy(;tUpA#2#}6L9ljlsYBROzgvC*wd@!Zp{&p~ z#MmxNfzd;Iern93Rtf(CA|frVyh5O%o{&~Z>#9zyrLDvD3i|U5k-VxrRZh(Tf80ts z85*27D|JkG_qy#Cy`jOD-OjwMs)50Y3Mp|;VD$iTvs#sSN3nqeRiJGyrEv8rtRTmspTT2oH8M{20QXs-6&`#|}p>OH4xlxb9qvi{cQQ_ZDk z*no^$BjLEmD@mIly<(R?HWH3Ky#l8O5!FJQo7@fntZ%O!&Sxj=mcH1vXz#IA_Bcg* z(|iWzzxYD$yCJ$CV6HPoE-=tb6 zi|OkY{JT(kjV9~y$eXZ{B?W0>9$x#VD1dus0w>+1MWX3~uHQF0ZA8zq(=~eLY+O<= zL^7EU{$Z0PCCTLVe5k&?m^j~j$hNYc$Z(-w6f&Q&ud&>sUP#i`XO2{&hpi+GF8Iq* zSI0RuNZ76|o%n9N*>Os1fm4b7EiPlt(C-&K@UMQr*p5%n1Wp}T6bwiNzlGo_(_Q!2 zK54d-W^8XWU=79nu=37^wBBAF=AEcuG6tH>{D1);toaV%_(J`D*@MT$&O-YxivdZV z4MSS1!ToXfAx(3yppfPj^h%{V%B01D=jJh+CccHe+G8V(s>{={5ep_d-qTff&ZR|s zzN&Ud{D*^)@+m3gDgw(vTyF(D)`LOme=jc?k;sp~MeoPw@d$DwWV~rS?LVO@&CVyc zNA`cu-a@|ghyUyv@(dIoH)N=@w`9-Jc8t@(g!3jJ^l1wHg#qXND2XeXzyJ{s3_%qe z>Tkkvpr+caZ%RH)^;qDlwhErw`c?y`#w*nMt+pY0zzsO$-py~DFokPpH+@qF$2N{L z4TdLPdRxIr7sALp)S4+`nJial?|2&c;shaZ2V6Fjy{$oQ8>@d&2*=4&?U`>DA0AHn z23)0A(dBVf)Pe{mhnht{V&V(KxrYSsIPSQ(7>0N?9e(FsaCw+`LHPUXZP>wFMUC5m zl!>aUp95`I=zH%eqo`;?K35JVDkW`g$IkY!yU^qWX7`5r{Ev`rcfs{SS823}F$;?V zvJisR&DCGhXfeOt826PlbOQp@HK(L3FzF)q=kL*t1oWE8QT^N5XcMH87!oCjX^|E& zVtxmq;xgNN{Y)C@>c;UN-ljyXb1-LiXy?C=Sjw*^L_mn+T_lL;LS|)SYKQIZAOA$o z{xonWouEW-<51CNbh3FQo#603+{CMI!*a%bUA*6s8nJvvzH@p;Z7nM5;)_R)yd3kq z#(UVygUyY@AE>>(J?d44a}Dp%Lz0{Hbu8*0&znmDDJ?I*{ISTBHawMh@fhrwNVbzp9A>xg{-s1s?Mv>z z%*RIgNX~s_C`?DjjaIjbFc6&Yn$~Vz>cAADXnF_gk&kA|0(GxJX3>ZugVH?%`CkF1E&c$M86f6(zD6 zsvSFA$ghEwL{85OJ^cz1lEdMmj&36NT#SHSYo)ZTI|L1onHxTRkD;FTFq_3lXyb4_ zxlOoAnSLJw-sM*tXo0uyqTb$_!SU-n&(pmG{40k(NAvk)Zhp zZb>-UTF=`r3u<`~L4NhE#Y9J~VOH()2BFSYxQwh@x3yX>dJ?{+9Bb_;QBP@d)BNNr zcl<|nCvIkoPO~dCGN1i`ad=F#(oQOcAnA&boD?KB*sEXN+&CS~mzejLJdzLjt{Sb> zaC^v!b#`^f?w|{w?~HKVUkcohM#_-P);#d*ytQ4~7ySrx!QrrJqvestPr(n@;UPWW zbmSD6B{}(e$kw4my;Mi}ZTTxA1r>z`hdy3(y>!LTUXt#Op-D|7%`)DQmDvGT5HW5s z5u@o7PdIkXRIYivWtJ;SA6)Fez!f6IGdo;=kBbl{@>Zfx8apdShD$5KyE^1?;kDy0 zUjD)i;1-wxAcU{^HJdN^wWS?9!e`zT^po12T-rsLyjapmxOJgN03HNw%3>}Qn`$qx zHBGCQWEj}s!KVAWI1V_XQV|UeIb55K&0j?Bogp|M8owbT#O+n>Gc&SjU}8+SE*TxI zjDctw?h`mA%XZou9m%A_e(1C0Jf1DQC7F-4W6T^~I5W6)mf435BUO~6Up&(g)3>p5 z_CSzgxAnIiES(eq`?;;cei}Lv9MMu|vb1&sW`Lkm`H*&_)pUzoIO=kGKykmji=7rG zOINpyw&5#9c!nSuIHKa|7rub1u0R(!ySr$!bH`{FyKkR1?)&K-=Wn3!(oZu(XV zM)L|M=EuFoGFM+Z?L9`IDb1YvFxNT4f5Nm;eALZrEtDuzREj#{jgN@obL{j6FVx_1 zce3weMg>!=#yYDk(tSi2Y0-?!Vt+oKnG<_-W+XLT$My?sdQK-Xxtopz6e<{*hn(aF zCp1kD<8fe)+#9@O`Q>C3LEPVFRbIODJdp(} zy&f1bWKhX80H&QLmrEVpPrz>ab^C&=`cP4mmWqZdda)q6$tmB(Kc5$sVt)|CU6_j< zHv86J8Icv~Py5@E2U#TV4=juocK00LDhkM|UGlDq%WGRAPtlC||rXrb&Q+-WxPotr#dQ(7|-lJdUmv9!deYCWS##LeQ zHsyDCWW4oh3)V|_P4C~)Snd;@3r=@wQ%6YqV{e|!S9bSNQzCDVckUx9yMK}x&qW1)8I zXg-BTB$zFWT|6(RA!n+eQ(Qpb>pQzJ!N|q_)VUyBo*mM$l*D8i8yL|j0VS>7#LUc^ z%xZwdi_x#EG#%`EnxE4erd*n_u7l&SvwKiG*0nbC(4dM=$n8Oi8bA^G6j{$XC!K_T z&r4k9K8FRDR(2YonegL;wO2;l>ZF$zy$i`?V*YBm^ejxa6u6-d-IKj5Lh|5uRLpsG zoU_qbhEkVo*Sg{Fyu33MF!SvItU1w?=&$x3lGTR2I0!+-SDO&hZ2D~EQBuM6(xVa zTOQt>^E8X=Y-a?YGLOAS>vR}VLs|LfeV8Rz<0(_~U^+YwU<2UIyqX9gIaWi1dsT-q ziGQXh4Rdh#FVanyvV3Cd5u5gXQFh%)?=4MTqVvmtMl{lv$C5UNi{v{<%HY%nS4Ktr zER6U`ySN{*W%UlJ5G>XTUQKclosUN4z7uzoetAI9<0UO`t{y)%rntt1SIc<2NF7(d zE*8X?|EQUJAqh~5ufGgwHRaEuMIB|4aKco$oNT^)yxE$VgR^BuM^VncZpXkh(<^S~ z6yu$y&=?@mzl14MZ~W63e7>Fptp-!Pq$t}nIbxV$pl@KfvC1Ve!PP>z?zjHRf$hyP zwgN(?&dWZu+B?H~N0a8Q;~fz6JtT1}Eq3TVd9rNp*b*EF`uph350A#0ED#ZVf>6bz zdVYljbJ^??Ymt+&HI@AGM->wjt*$DIOvC^TN_ho?{M%#+ch@;znA?lN$ ziSd?t7AD6-?)u4=gW)GP=Nr`J-ik_EUQcn+VLsY+5~6(oVTUQ4+1Z8if=Cmu~$erziEKLi#{Sy3i+JN->{=x%mn~SgRvEJSHllYvc5oho*_W%aJf{rgn70 z4tJn!f|8OHUt3xt=nZMtS9WY+1fRtC=#`C?**u@6K6b+RTNmLDx2==cv^V>G zUQFay#EDL{?Cu(iJJbsa!CddS-xxl)HMrrqc9Lf`JlvguOiH`KUxknxg^*5}+_mTL z++5$m=)_$37#>rkMO07jyD0O)8F9s>Z@D=+7y*LLH$Ic5#ZpYB6~!`=E0_77<<;z5 z#7sLMy6A0f&h*yMoVlC$DcWtVeO~5p63XFV`U`@@X2p>JSVLBZ!B-q5*`A`RpA$v! zRKzhNVxm_dX6xUN#-wDhQ^x~fL6l&}Fd$~JsH*p9IvC7POrFUSy z0a_ffJjRM|8CG+`Ed887XvLI_sGR-x%x=_y1qt_pW)RZF(&Iy}SyvVPqTBJMO&dL1 z?&6Eb4}9yhFTAd;$`P>7Vpks63$-NDM+P-&I1L7E?%jS>7r78vAhL7vj?QxKL;LeXGDorAU;D~s&KQxBO zVQ3~5>f3J8Xt`dtvZjfwPqpWdc^3Oqc^{G4**zw$m3TGcs;Mh+r6ECkT@MBB-VrZo z$E9VBgkN6uk%y79=^jhW3`p zcA#DIyl=&Z(`vXG&hqgLp4>83HhF^z_v)T|xXB`a6)n8E-OZ!9Iqbh_0b)W^AY_4n z!o&55<&4BQ|AnLaz)IuAR5h-#Gg3+N_Q*tf#8RHBM@ zs)U7hK2@)XucriVMw)#q#_A(NV89xh9B@GeBeOZ*SR-T_C#c_J#Yx$lPn~WgzVs~b`P|e(U z{Y8QtR^6T$kXRv?Z16oMlDMv`q$mE*#J63=yIwNq$KA&Kh_+iy#jBqh%?~p6Z2RlR zj+b(up6SA$*myC&2tNbz!Y{!#&`|RBpsMhR^yq(v4xWM<6{F9Xv-B zI$;HfFB6;V4poyRXr+>fo;|rDJ@3s#zi4OdbtBnB^>7BeZ1{RC^{T4L^97*`C&NCpTIM z+<#1G6WBY8nQrF$LaY5r;33w!QZ>_HAJ7B~6S6jVNoig$fJ)+9K5`GG$rJAtF(v6h zZ>z-2Eiec>o05qU!yue_*r!xVG=D}38uyII&mT}VlJJ2gSuM0mgROst-@H);(#ALA z6}e(;TN`t~Xw71lsi8c^ib$jtJ)soqueNV~{dM<4-u5S)zJ~sMaO9zkU+W$5(?SCh zus&3f$c+$3WBXbxtEr4s>%fa2fA=Vhv(n0b>o2n}*236A$NadUy*U#`k>OKks!hJK zaF+vZvG-E2e=t2QwbjJD@&&StvM^WkZ%U4~$OLVfvCr~p1j%|TN?MGjz4x%vS^*ua ztq{Y{Z^!r#?O5K1HvKb;M!UyD%YY)8$lIXJ?G=u%=~a z{@zyy@Pd6)hrb?*c3bpx&AVynD2t!nYG`t!l$faUgS`^F5iGfD0?5mnJ+4kx#*_h{ zBwlq{gg>j%o%^$^AXAj+95*zGMuQnvATZ zs&!w$Ax%g;073*?VdAmA?o+VO zU8?flV{2qr(iJe_J2q^7=x8qK6$J%xDeSzMaT2qR=QQ~h4JA3(Eho0Y+?s%$Iyq?U91=lqa4-yB2Dg3luf?o^VTvpp=prb=o(H~X#2YKN6S2W#OD6}d01&}dj#WLPPQ8p z%pyayylNMF71ekyu4#M@_kX)ymC%5T-w1XN5W$%x>ZApu%2ppU&U=f*~iXFmYEu>d*UFF|6E zi(V@y8?)^08rVAQ^YB{U5{HSb@9H<3|FvsKN_**=^a;=9VDkZy+(8^Srbzljst`dD zHP(f^G=2E)TM>m^%`NwmK34mZRq)>0QUurbB*T4$t$#_ZN6 zB*YaUCVM_yrZZy~am>z1Brw<q$Me|tAO6e+yeinuzP`6$gw<>Zk`3sz zmMWc}QR2{~OF^d7Eu*u&y7Lu2IIZ)VNil;dWG01r{P`fT2q7J&|AlQ*D;gaYLfNCo z@UPnEY~B0@_v%Md@I`c`xShTIu_K^!@y}=<`#a1O5J*!c%U6E70OwuIO z>ph(?%4377CN<(&EpsQ3i_yhgt=Lw?<(A$jSGXr^00#1KhkZU?T4r^>+!fP;Jf~ah%Rew=pZwnG=H4wk1jJ5JW^-cHUGYu9t7UPYZ zR{$q4{s6HmH;(*@pthCX7-fYraTSBpjVSZi!OIu58d{Qn9z$D+v-ne~JWMhTHW2jW ze|6ol=OxbHYYC8L8X1Z!Q|MwLdP8pD<2p#M$zcp?G_*bw$=l;2wY`G&vO@w>{iUjL zpa8t!XW#@eV@k$TD$m^rxt%$5S2ZrO3wOd>86-YnU|~_>$a%@AC@Ilt+Uz}!%>*g| z47g$glqUweTbr2YxJ;Dn#i>Fgy*V3Hv_x2efL3CX1O(*q_Kx^9YVM+q0YvUo@_V`% z#oH8{G#Ld+dCVwtHsKX@)&*q|`6|yGNqOQh3i@W5nSjDU;Cd8+CQ3)-J)JU1o*_e& z?Auxi5z+!VgFpeI8`7dpFaCi;p#Bq<)|QSf71X&$aQv=Ys`4-( zBMB5i7q)yaJjxVK-=i2DOKYC4H`o6fGc=~8iQ%4t4BVRLv3Z!dJh_eLVa0SMusL>U zC(Sw_8TaT$`Ditpnd<86S&(W9tHPM-8>iM;;|80G<@1`yQJV@9mu7Jk2T->&jhoC2 z^J@=GhRcmATTZjux5CjoZjGN8n6VRHKV40BnC3QTeA7o0U5V!>3$u%2`I0^Idz?oH z#}|-?aP`*BwVrx$RtJ*`w8|#%&|Y6n|Jd>5j-XN^`b(wv%)b*RR(PEt2EkR8C(eXeod&)A#>?5?=NJ|A4a{w($U z3-yZQS+)w5$NztFc#p>M`EB|7dM&jpauQu}j)GG5zanR=XBQ_ckNnDzYF=?!c<|Gt zkp=Ga;~z}(yWmd$U2S`Ckz z59DlqYa545uDdw*S9C@+Djeqg#at*UnOO!t$uoYab)afFF^BTnM}p8Qv`5dc_da?9 zIIfjyLSk>je(jxo<7zW`2FUhq@E!e<2dIcxtR65LUPGblDe`&V0H&P%h(}a(;G3=W z`|0Y0n0j#!osmDwlIoK%s__ZL-bz-p0>oiTG|4`wVtw6ewK`Xeh51xe)G>uK4*FLx zw6wQPAB_Mr_etY$ZOdxMZuj`JJG2^m8(yfmM6J_?A*fOTx7fnF-~fEV=COlMvjIGq z;{72@gTuG~l{rPAH!AIw^6{=Tn=n_D`2eBV?`(7pO-8{Vrgj1v2C>Uq3)ptuQadhp zS39j*eKrUMI1L>9T7>t1xMd%&2x_VsGq$4*8|U8E>sub3zM_x3T8GpzuVz)$3l|#b zKQea#-d8Bo!$0H;ob{)9z?gXi1#O;O!=-iSSh=`x0v<#+tfnSIAxH-<+{M9+^TOl6SJ=D&)U2fb@>oz@#nOM&vg^UGx0(TU3RfsjeUi z8Y(2@vI-a$xU$a0_3-=zfa#Ck8c7G)gYX`NZ)X6#uRn z;FW3XL%-r+U0l@1_#wu0g+AUkhWUw`Ypj-hZrqqFwU~zT{G2I+%T_|86GiL|TqWR^ zNt6))>qhjfbU20`JD&Y}+1SNq&Zp8&<6u*PH`<)t%K07{no_yczPYln> zeJR(V3+4YHlY=1&A1t&%QR@Ko_Ay=Avbm>G;GsScSsPO!3G>9zYCq|ZSFzLA*X;^` ziw0@&5{B3H(I=5`s8SUP{#Q3PVBF=p57|>(`+wz{YqWYe(Xok>`Rc+xQ6RldZIfxKnq|qA_xfzxiH%oCCN*G;ozEezs4Y~B|E)P{}GS=Y=O-m zB?r+#%K(zEl8X=)1O#Rq#(gXZoIn}M+dpy?FD%sd`CQn58Ml>89q}TkFpxKwh~2giHg2fqRVk7vG-|Dxi`<$vHyxYt#0 z@Cr20D9$dvm?X_r)9FN6EVx$`G_+24f4yxF^WfFGR+n_g1EqVR)9jScshC)+rl&+% z8Nb@Np1S3mDJwos+m(0_dMe;QPFcsE5d4*}Cf;Xbq6K#N zeCg=y^qt_n5vIY4DG>`sdNbZk0s!hK^N^yVkoXI6l}x~*nkp#~rVM32+BUbgWfudE z49mt1+e7x{;d5ieF?ml9_2~Ufry%jje7|6l@C!75LA{S{xcHxYNWyP{x@cRNPhe?XB1VP#jrzQDZR1bn!Jew1+M(x*QiI_@&E7oREz_J^ zeAPbkbB~JxT(c}ZazFbo5I*8m);WMPKvM+2{@nio#s3@q`6m_O|GUF?Pd)3m$Sq*fnDh@ zLK6O~eQAq7PzSE9oj6P-Nar`<^HW(fKar=(bT`YgegBAx>ctN#$LAbdRHwLGHR4OGAs*Qm-jGyH35>^4t-&<$e%8vPYQDlzvZK2Ul zq_4?KJ9RosSq8BvI?pdFFHYN?q(pCeLXW*AH5Z{SI(L=K%#aY|_<;(7!ugUtSGREg z(y%JFwaG?uV5k@PZ=dh$0{5kQT^)TydUGx?NN{IjTR;txf%%3XsfGE#l?uZ7c>B)H zvM{hR<{j05JHFQmb`R3BFtW9z9Df9*Dm6QMGCWS*hN#TfJ`fJa$Fj_*4sYvp!-3eK zW<@2XCcB$>AZ~~EX$|}6TcGwjN7QjtGT)>w+5V zgZJa(^~PbFQ4i$~+Z((fe8%C4nHNOo=Nt9SABpjt>p;$wY86TccxhR_=a#1BEo$8| zmgcVG(G4@_o7XyNMp+WL^>#PAzXQ`i!CQs<|DhcNE-l^fsy~7GC6OKV{b)li^NDGg z_MfYxg(`=O)A}od!Nf*XtEvyp-~OjAg>4|b*CUtMo6FvM;8K2gaI3q*jf_f?cl>xv zNIs+$5)zD<$Y!~g_eGG{`YDVVE)D3n=rkE#5>@CgRETv6lW|CT;{nhHfD8?eh#(YDra0($d}h6|leG69GA&?={P?5yvtC|ai~i|% z6c}QAO0=>4;hL_oG8P3{|=0B*R|ON7}FPd+Xn!sDyKuRea}Bap3%u};wH!E@~p?} z84qt6ze@`?^I1AnI9_3)sOV_W%0WO+Pf3Xh_lh!ir-)8!bj%~*esy;@i2M~Ck(Cua zvwXx*O8RkP%S4B&+;ck(N3F928T!+i**-fL7hbTQl4PKixMZKx`MIK$)@KbjrqCg5 z1fOtTDvWoS>Kd(7`8h355<}f=tc;!7fEa;5o~?=fkFyki=A&y#hFlILP38k?bd2%` zZzQDi6PuSWAC?Ue-yzY)nSi|ao!S$nJ_8Qs(|c9YV?suz;i(vwPo9VUgjbb53$W5c zLY`(5{Zl=EC&vbEmQT*|_SRNRm~m#2V6;ZFjj+XS#|SY9z<|dBCdue-{vlxvj~F){ zJtN6~hfmKg7+F|UO5GSA->Onz1a#<9MNu&qrW6l#4scDIBPY{gU|?k$>EGVob}M{D zg)3CA+@8zsns3>0^4AaN1Z@aFFjS+n0RfdV@8PYSVkbB%G9pyC!y>8Ye9ZC4JLdS> zEndS2c--$xKQ^y$Iy*?s=SpJ+Hr;N|4F+Zh+I*2AaI99FRyvk!)Zb)*ls#ogyUZ?1 zyBy#r8fJ?#!$$xejb78y09|;0Z!(L4Lw@vtW+MK^7L&((cW{DZgY%sh4OUmDhogg; z4d^%lU&Bi(o3Wx|l)3yZq=U3z*vt_X0!MjWxd9W6CE8;GNkb(Xr%auQI<5!eQwF5I z?%p_F_UnncUxaV}ty8**NAlO%NO*d!CU~vdWU1^ocuWjVGZ63Jz;|8_441BDvsYYU z_zMn7A(Mw3bRCUEbbd8nsIzwNuQ72535I(G0owJcwn20_1m4I{Jmx>Cso&ajM18(U zcn?=luED<9&$sTU0!qAGbfNd$4u|JA3`}wJ#g0>eLiX8$2h5u_=epQ+lCTl7)e+8c zUPXahSJRro1}0n@K*W`%$p0EDkJU$yZ(gB&k;p0vK@Jv*pe!!XFXu3qM@OHCh>4B{ zie!5_SpBW___+9-rZwq!m?83(W^vVS8a76zg3C*OHa}_}r4CXWcOK1}T!0x`tnz;K zf0hR-G9r3@Tom13orf;sBn-pk@LG0s^zoSPL8`=&j4n* zn#eWzJMeI|^Glqx%QnusNI(C{lykzKxNl>?P5y#NZNNt3B>u?dkc?W{q66X{Jm&-8 z`iZHc5a9m}{;`Y?_InBy7(%x+c3|ae^H7qD69n`M^yo8@JO_1tNy=;g5BJLfPfyY_ z#VPMlNvZ|M9ZA4nTC7A*hG4{yi<+mLf7~KJKkhnM@l3w;Tk5k%d6fQrk|I&`Uyx;} z8;*z?G2*}B8A|fv?dqF6B5)m)2SxWYB7pk-pSaJD`Tw^=o22SrAbIKoZXMc7h6F93 zLnUeG89alpa{U?BlSrQK3Crs{DseaKX$oY+9@Up9?%jh1j<2GRFj+*70#%Y!@tM;u z6FDk^PgK-1nI|4N_?5xVzDJNa(GNW5xUI(srWaw)0gI3D*}h`iRxmIyMt4A?g#}aX zAo7O&q>QR6Xi5WpRFx&ecbGzNz~_BJ@#(^kgWRVU?GMvY#(1Xbg4=;LhKX?g`;VKT zxTYpnYHD`b5eh0@1fSMf zc9prr??YS6aT56W7Vhru-T$uA0&3{%?E66N=#Y?*$V2S;goMhhXT%j-HAo&^&Q4N!Tim$i*wVlE9E#pLJ{v@czHVJ8D9H14@ zn~)tC$}!iie2VmkVEzxk1o^1Rzo+p1n}R_+e(uT|FL;%wkDixj@TTzp=_LQ~Z-d?Q z-Tq9Gmccu|c;30oTRlU4!f=42#8}6E=HE`=LKcJZST9W!meT&Qg3C`hzB;2u&=`x- zGRoNqr)Q_>=}oJm-+g>IAl?1*{q?2T5DLy+v+-gKV4OHb`x}?HOY1W@ZNFI)AjadKxIV z0sj8azY7p7+8-X5o*PzF9$Z@{dOWoeH6L1 zt&3JhBXJ@5#$M4bqa=enJ2j&;UoyBeBfRbIoc0aT`jN>{>eCi>1^Vb2`sisxBA&>m zoL0|6bfTVx&U8yZDp6##JPC$>5^g+^_o|$2p!m~Si6u4{BKk}G33p{iM}yMX&f1nNH>{!`h#od$g$epn@Z2S=G!cPf+SA>Tfb7 z)XWik$7W)R?z|qARE>MbQo$fM;^_TbhU76mHcGwy^r|9;hRjRm{6@XbPQGr|4n>%{ zM~%GMAs6+Ar!g(F)ZZ)QUL6wliHbM9rlQPUo*g018+-KyyP1CI(L4Dvgbo}scoiS- z^ZV=Z`6>@On7SZSt{+1@oV?{F84bBHjbTj=mA0W$-Rs|8j~1>>C={Q)?l4Gc%2bWV zVX-MCdpN7y?Qd93gpSU@XNue2(#dxDQn;h0+_T~?+24t0wQeq%d2e(@jT-O=oheX^ z>b`M5=)ykl;La}=Lld9Y(G}28)+PonQg53kDd*;vF^bNXv;9MEO${w4H;ScBt?Wx> z%+?-8fO!lzDl@iW5h5Hry4u;LWt6P77pmDI_>1UAE1jE9UEgO>&Z@C^%XB9>QeSDa zGY(Ty8kvombWH^vEiA$kwPXKs8CncRrJ~d`Gn385IQ4DuihzY_&)z_e_k<#9-#q=K z;Z^E|3^D$u{KWJ5W0d5NqmOmcOQPv=*U)KL!Kd5P#O&a0hjWjo@=<)P)EVp+w~OG? zWcxw}-_006o~o!gZT4M1mIB1)EZ1 z_hfYklhqUV+E&6sCE zKmVrR*`F(pI2zb0udH7vk4+`nm#_`c>N<0%F7dEPORFOiRa~quFtaZ$ccIO1Sd4M8 z*b2iP@IHN8x$FyhGr)8f0E}s#=M&-3%h{j>r>o`rL0WE9$d%TY;%QIXgTD^m!|Bzf z=`r}s<9AnSDPAAzUrFy2{yFL&4X_+@@DLxYVwfE2r{}G5xu51OJW)u$h<$U*sYW6< z!Pr04cDR^!bFC(v`P*1Q%;fc)i1gj*<-0<+M1`xyr+N21!#6k!^-&VeZ}b0b1!-F6 z)+%MefCmTL!bsu{OO=&;A`D$sZSB;nehqm`P{Kr9>NGpcY-H7BUs*2FM~OR<-mwy; zr|3vhol~*5Zn0ARn=SwI&JSz3rze82c_4JiSQwx8LPEIzyr&+`w&^#z0=c3df zJ^NL2Ge@^-mQ>al9AN+WBv}d2;Sj1wb56eM*2cz~(Q8ylC;|6hX`Jq3%lYos*8YZM zxmVrrEa&HKS55fw^RD=98}QpK0U7t>b^bhatRd2UcxA`S;hM^q^mslo>^7y3-*ia* zy7+81Zc=Yxb9p*zMN|0O zjVe5riQ;S59~~wis=Fem!(Ig&r*ifrzG{=x-_7yX&OaR1*zuchZ60Hrj~!thF1e~r z0{TgIYWscW=(QKw+`nQ!g)=z>hV50QG*w$pLQS;kn*2#QG4^w-Eo(aBKKtIbvBfi& zo-fIVd#QU{SN^k}Ey@kb-BZV>mHCAcyVT)Kk@f2Y?1m%Lr52vrq08T*@$_1amF1vn@FV*iIeFCe>c+3DRjb|C>UXl(Ol#iG|Hai?heh?h(W53JNJ&XcNQaa( zD5-RJDBVcM5F*_I(lAIjNH>Ud*U${zF*HMSx1aC*-RIux;~&h-dGkTT$3?l2LwS1n^vrp7DdBFR?eE+!vPGEheuH>X z4{oZ5br+vb@6MF*)?{Ij+q)6+f?r^LulsG&p~UfZ!Iuw4Y=isWo~Q7-ypr=Xy|bl7 z_|a;|l$X5R;ryii$P5EclF}I1XCcyJmhp4@hRsg*`RRe(>UA|YsO1UcXzojk(mJyr z?vuBM#W74}Dw#!XS!b8s3R216x)+EscTu(GVeKxYiqj}FtoiEQh;-dSlHrTvtegp# zLfo~vWJ*2=iq_nSt(h2Es+dn5YU9_^Lt^5da#oW)4@DkSS??K}nY_eFp-uX&;uyt* zMa2cRt9I1Lt@_@+iVoi|!4`EQUhi7qyXC(sgs#C8Xh5jF8BfU|Hv-<9CptMQv7)6l zN*=M;ODH16k?UFnmy!Hkzaw0w8}uRNUAEXKA^}Pkg~}gjq5WjVaz|0{$NbkqycO?P z*-Sw^-safC7zDTo21__qS+Rxrmu!z1SEWzDY&wQVWJyQV>0f&N)K;^UUgp2Qgd~3q zU#9!$RK4A;9%Tpb&`O(JBaBC}O5-BbIhmA8HSi4Yz7G$U+n+0czJOd7N>2D$9$Sf4 zX!Y3HZk&E?NWkQvZ_kEHbMs#H?85UAI{Had6VN|8sfH)jC)Eek543g(M>LT@7zBL| z9dE|?KCm~gneMd{)OhCwBA8dzt-V~Z*}Aa_oLq6^#QAtUhs|3*kfbB-lL@1+S5WH@ z#zgk_D*I%+FQj2f5evLepLJV4yG3mfBKjoN zf*duv`e1*i+Fgd?(Sc9D8E^8dE?Cpc_&Bg}eB`4GegBfhPd+YH0ydd>^5oH*!F%-f zx1UtTq+CtB2vH@tEGNE>TKr`2dz4*vjpww974uSUV8%`L^E<>Dgctn zyYz_l{V$U$ysgaL>s8n^Rx)0uM$^?DIYl~`#ZX_$DGlFq{_*X}u7l%d4GGaP5uZHw zs*FhY!}cXJ3~bT!^9HH48#j?Eg+sx+_5HfWi^Y`Mkaew`(G)>!R`x5gxbpL{;7jb&<$UvwkY%QUrzLgztu-Sz*@keGv%IQ)cs~wrP6fuu=NiP{wq}_br(Qg^%c+XX6n3G zaz*p@+Qj*!2RRH(Y~9`(JPJcPlh=A2AB#n2HH+DIIvO^Qkr#Yv%&zeGtgBEFM(Hn` z63K1N%jotuIa)~D)k5t+2hG$lBGhdF+Yvh33?0=*>@E| zVK(znEgteWwgNa)PD`1UyX{A>Klm%wzHjB`yk6Z__G@SA8=Bo~^X2Q1qK=TEHFnPX zYSbORBfqn}QlqXGeCc5wPoCnu`)RC#!HX7ajKeZJ_0@~6wGU(vS98ymgS>uM{e}}k z3CA@H31@S}$;Ro5W355)g6m)zvWYGzD-P8wvkK7>1Z@j*mwPsLt?;>qJ3fET{zyy+R*)(JpHNJb0}&?ZR*eCViQ}<&h7>2&2tbcnu#OB zFH^~jcfR9mJ)Mlr#>~=)+q`C`tuzYbC)0ruaX_x2mB`@LtdMAL?q|E98}ji_C6u*y z<=aLlMXfBeJf1$OJs)JEZ*kk4s6BoD)=Z$k*N@)?BmaQxWl~JnS+S%~u?jwJyKmdz zwUf1OUU%w=J=>8O6&`*@+w9+;%nV?fNM^bULHnBH?{{1yB;#~%fnIoc2C_I!w>4V2 zoSpLw;%qK{9-u5mQjvI{cH4u*y}9w;IeKC&-`b+wKWX$K&*Iio?CLUbI#F{+w{x~5 zrqg)&VAW@#h95db6&uraJFtGB%WHUj^F@H*h231$B#Vs(oTAyoKxM9tE5YDYn0iwu zvQoQTOE!$LYn$}!NAL^G*1hq~#|>Np-e(0Z5^20c6%A@k%nh zI>$n?#-l~HbZPCmG=8yOKc5Yr|6&$w>FFi-8dO; z&vj&fbNNs-WlOJssD;u@I92bC6+(R;E8L?%+e*CbEW?M|1(tKOc(C+6r?d3L4822S zqlcE^VG2ZzU+vWT83%VJ{=kP}PPUf(8U@M@$4?8k=f6|oI3w_is!ogQFSklMu(Xas zEFi=16T2lXOFarK&@>P>#gN{wf|I1{%lY?Sx>-EGSRJG39a-}w|N2P^Y`6%i_onpa z_4R~jLUiS=u`XuW*9j<-gy{290pCvJ^X=(6K{!rm!|FWlqS+hoo>`9@mt9GH*eAX@ z9kPZ~^K~fG{LSBIY>WGRjy%7Qrqn{kUk)~`et0nGY4tmCz`Z<=&;2`?zoB{0(VBuQ z(jvROE&=(4%T1&6uB(qj!q;}G)ZMFpu#QZ*?pzk5fSM0sLFV~`wbQ8*Um z%UvHl0r;UAt(3UR^=nsKbxY)^2S^1j7ej}TxIg4P3FFRId>yV7TGD?-NQGfSOZ;3h zxyLxow{+QlOQM&{cE9x&$>To}kV|uC&;7{gRP7XwO1f)%d$v#Y^y$-iQd?~geiLF# z5W}l2FU~e=oF5Nw7e&4tW(^ve8#Lzd6im&<+AY4cJ_Qzl_<*CnK?{tlt{Ot%z0)9` zn?GUm?(T0@oK$X!V1=pV{qKkS3=VmkCUZ?+n)A9Q56A|M-_CLuHG5j7R}^7wjai>J z-~vBu#+nX*elDLI3P;HxMLg@>ri|NMJKNJukOCJ4LQ^&|+fGO(OIutvzU80Mb+gQx znc39X_2yR$XJddtR+mZeLUxMk8b5Dfe8j=EU$!ejJ`!I7BvAQkuu{Mtq&QAc?q6%sr=o1IWvVYGDX3C{qff^<7ispgiTFOl071AjP7~PJ9UXH%%V9X%$6Ehk(U_ND_V@b z!*e~;kJJ1is_OlN%N;u*9Z2UI&jj_eU>i8MDw9qZIJ3sP+Ih&E8HEh3Kp+x#xzNs^L=LPShXqq4`h1$1r|Z~bJDWChmfG$7 zVt^HJ`Q6Y_WfipR3@_uOC}`@;!OLM`H#EvbVV%s*PPtO0iUb572fGLJQ#lP3U}-uD75^8}woo{V)vD z>u^sX=sPk13qF5LoNO*mMwFzh#2jPUauIV#wkuD);X~wR{B7etx&3MIrOBe{1-u*g zE1xbVoz$+I7?>T87Uz~*her_xJIwM6KF9nIbGyf~jwXdl$R7ERl#NpU$!fT3?yzbU zi06OazNz2A)v2?2w~y&NIiGUv5u9_69HJlzyJrfVG!V9|Q8z8Ge0GVY$5CNcG>Orw z?{ynr`#%1!DSKzv!5GTaA>AueexMP=RO zuxfV`!nLVWc22vgZ2_a}nl>MI)NcowF#Ja)GS%`ogrkk}54`@7P_0k5a25Mk)@~zf zfBs`2_N4Bb{n9B;|Hs+=Qus$6AeHM6=q`Fcr2jkM0qWI17RH;+&GW&`*N3nE9RdFR zZ!n6AZ@O(_PC3&F*2Dfu*q2i;+|Igo0<4$Zu)@psD*j#3J-f(( z+oKlE5yl!b2L!}$C=r(vDJ0;Vr{W+Y%UAnrd6u;q89{5RJbk@)Q5Rbo66JLs)%?Sa zOu=Wx%JVk;o)gnrcudLr(qewJqnJh?{ue1dP144 z$ncCjdClC`)#GC5h$V=%vHnPM$7>M(1jwbsLcx}Tttv9$R7++@DvJWB$Ci#eXX}UR z)HtF%$_E;iPRE7Xk11(XdI(*T5o!~9Q8^lOr5l~uyLtKsrA7x5)M0C>u6&*DoR7L^ z5;fg5HCmHBuP3jc?OWE+wEVW4atRSPG&Vlfv-*#)bMi(A`?@ZTrI3tYq!(%N-={gy z^)O)%Pnm7=CC{X}IkUexpcbW%NYLv1^HZNdD?nF>0CL-`cVQ&?p+;3d^YST*-$Szh z49qXRL1D=nq1e5!Yw0lm3q|O_$AiCq;-jF5L5CgwT%|&DY4yGkj;I|U!(t42Snu(r zLquEm0?^y30f3hBJrfW{y(wUofHZeKN-ZH;gE>sFYSlpd-9E%#~zTgBXnW&7gf)pbH!Q7)`cE zn*VM`^oItCp{X-dg6pM4(xXVU0+7>r#-(M~OJnR>zUbh6<#UD0wu;Lp_L@Ny)%g^S z9vdCAm6!Slo(;rFu~Zf2dfG;a^5X18jfgOF%qLz6zWv%e_v48-gRsm@!m3>uHz()r zGxdLG&VM3u?ff0o=lV6=w#|^Ywk_QFic9+w6rj8 z`88fOh=pWnXu+h!n{hETAHVDJ2xLz)LwI{IU+ow~=y~#-2iw1`>=eUwLEc);21w{o zkiX?A9_wZLW!5~D{Pg1RNabCSimL9Z(Jml;AKaLSg9d0RND5j>Y}%mx*WdS3p{n{E z0kRp$BfRq?;YjWg|ZUA+I*zWLHKQLjA3ha|hw67ujm=WNN7Z_jWRV8APDU8`kW^#a#uX@q|L@e@H$m4=L|9H< zU+n%9@!vtb&)EaP9}h0r|8p~-FX2BY@*w~J<7gfz`U(G|Fdtz5&nNvt`QK5mxBinx zzQ_2_9X)t|Xln$9I&e=r)}mo(8<*Q@V1Jc!?>6T%)G6>htOmMR{Z)LQIPz3^>A8P_ zg|6Vfxz)0v-I*TxMdP>KC#s?TG0AP5i!J@dd*2@@UK-XIysG?aXOgh8>2Rx*X?L(i zk$!NIcuV=kN+3!H?(i{OH{<5$=>;PDjYG6JV{E@g-q(8x%a7BuKYmv~Y)`Niu)l7M zNANtFdY(_ORv4A!KKAnJ3)&wxKMlo!UR+fd25(lX5H1#`gYHd;s~wH#mcFO-Qt-Nn zFw#eC_#6XLV|T&A;QwTDI7BB3d*`jk1d?gWZd0QXFxfIelKWq+1#;ADXHErpenrP_YL0smd0bgR|M1tBGpozRR%*6d>Mi zGaqJY96%Hzs?FIKgy;p9r0jOAapR=9&DwiCnm34f$j2=P3_vBYJs{-QPEu>0Zu2L5LB)uNq7nbCClR!D zdE^Xy3@NK7ZaCeFql0|{wW#BAyrY<@UD+&uu|da%|Jtc?y-rQ)h~<{@U?@l>#j;#@ ztCIF+zi3a#JnnFxn{!P9)3|BdYR>;TdYD4V>fAtu-Z^#b-$+L_Cs~Ah<>;sfgyom( zA_k5=*Q}0T*WNXLI|TRrj=V()8b3vRa>A4LT*u)L6HUdzsoXA>zN@W>^Y9F$gHb!n z793ssD_GAA0kWWAWB^EK$4Uhx2CM=epNZ;<#y&*1LK)Vr-{go^%}^w5+50@Wl%!7? zt+cCv7TU@0I5iu7BO0xv*fAfGrz;>U;C$=e40W7~)NNzKv#>=fXS{^0<$|BLE+PIa zFXw5&oxI`T8$C8b^7<>n$sJu%8^(=}QSw|=Kus-4N=0u7MJa*IkMmH#zf%Qca2cJI z7cgP%%7zyIF`o0eHU?b?+E=2#=rzd8dXC)-N=aC!uUi|T0mVJIkPZ~-^J_)bY zZeg>=p_3`*qIJK5|Nqefu+USn2&D5D>5m6*8tar&){%o-8t!XVwJxy+y;Vj|M!qtn$X3T#otP))g#pN8B)5Oy*j z74JLCuhy_7ZA2t0Wq|U`7nt;8uk)kUF0AJkL@j$u0d-GOWl(~AR%R;;`~>#3NIfW7 zzibvX@}mnHow2JJ`RNFlAwr%vAJN-SS)4J>$#-;;x0HKIr`N$NPp6A*zw8F9b+Ig% zng4S2HmVa-3zKm*I6@29nXeb@O^_iLE$0%beW1|ll`!LamHR<2rJEvsF(XM~D#Yrj z99oQUW7DhNJg)lkA#W;R{W$Dz0$In2JzQ_Ugq$pygs*USfV(@SVe>fbJl$s`yY#x+ zW?UjB=5Rge@J2MlO?2Sy$G5AaZi0bV3+{+O6+2}SmD*k~AtYFfnj8hlO6n7B81hxE zTe>)7){xg(OA(eqvq*)Z?){J)mY%10>JTuk`5RFx6R;zlBJ+e+G<5>S(|6}BRTh>X zGR!AuamC?t5xQS2t-pR*T?5b{)fBYup6W~nw(p(LCe+MoZ6|9!U%A#(y+hU_PCLAG z$lCG7I!VBIDA5);wM8%JcY1JBk^0{A;My-EmOH6>f3iv0#7X1x`_%fjEP&ggy_vD? z+A#un2#iI6;N(X1%Suo&?G%&=rbPJemls&YcM(<-CEMZ1fbI70 z=2L0R8@)^Kn;q`Y0=4|8#2Safgv4m7jpqXB?1T|oqz(4xzW_qv3T+Te6VT#hRO@?z z$@aV4)x7K*J34ZHo|`ku!0C2WCsc78Rv`~YXZL!9ad!4Kr9%?Kv{DlfLMpoDhkFp!vw5V&_~w~71jrSIO57G3VwnfD$cx!GrZ_MHn6@fVgdf9;GEbe;5sh@Q2(;U zIIWQeqCPy2(3Wp*YxpTYy7jo_N^fg=oZhL_#ntaO&kj#_f4+!62;Q526eoSgn$~|z z79G>o7DjxYB4T-GD_FA0b9@kFcXZm~h%9nW4a}R`Yt^pZBo$=Qpx=Ak4hle7J*3Fr zsi^RUfILp#rXL|zCupInj1ytmTtcnUse%vnVUV3J`!E>Gyw_NRO9s=Slc+-jbg^fE zRM?i))0=OxwCC{|9F zf0m(o=+CW3SKK-73VpMC9dP_av
8?xP`S<#DzEV23y?t?nFec=79&$3CL+$jNhs z4&0)^aLiFRaN*eXKb}K>)4Kg77Q8(jdZ1fqgs{-p&;a%ostipKWcu%U6J3OTgp2RqOGZg1uTu~pJ96)Ym?=J zOG~R#)$7sdCF12!W1QIW(%40Y)w%-Ow{<15`f;J&RP8&qNLmage^m7Y>Rd)AUUd(Z2X4akX_t$OzM z#VOeqKE1y4y0|%$`e5bDP;(s$Pbj{nTOnYL?k%~Um`kSmR<7%f)9>0*wDw{!$#_tr zt{8OfRfp~9SI;szle8{9rR zh3!2m10ExE$%l^QB;`*6r zK8Z#28o#*Dn)s2wf6XRnu3pwPV#~5`GjNo7YE9m%$YtOA(Eo>MhB&I%#_^ub06?|b zlfsirU2-b2enbz(el+1_@W=LR>sdO^--SX4ttS59DhSMJLFcebp~JmXQ%1m^Fnw+k zljx$o$*h%z$B7g!+<5mRh;quhB~dRu>fhz74c2Nn1#Jl1B)cKeL7Vh11-&KxeG-;g zhf?_{z7i4-7rXIaM(7lR#mUUB^`c2_%kCPr8dE*+WzTt;9p-!{<$gVQ;Y6x6p7a|9 zMQaPw)S+G;_A$De>+t2YqbHFKu~X@b9#>eR^g;q6e(mD}MTi8`5c0W*I#RiennsT> zw?;n3xWdytPaP)C$6hsIeiMK<0XQ+0|3cnoVhS;Ck-3fgPU6%8GmVnexfii>Ua-4m zbqkjai|aGPsFQqC$ofJ`<59144&%1iyZd`4&3CRlrmzLtpBb6>XXF~g<4+Y%w_(#m zvo924fp6qG=S`AjckZ0JMg_!R1K*4yUZMwhKagrCPJXv(eWU8_k0hD0b>P!{^T3N}rZk{scT_F5005D$uLvupqK8+3BV0*GFkK#Vo=-JQ$F96$moc6_nIIwBQ z?`R6omS@>rl3;a-_g*M@LmABOc}hvxLAS5$jP^fadqYNACbG7OV%el}WQ%YP2d4R$AH zZ0H7E=6x7_zIZ5e_FOjn1=ti8*gki@9tP#<-hMX|a&dr&>^t_X`;M*o@Z_jb zBenle>4{W~Jo8OMGZVmXu7QnjN(Qh+DL5T%O7hQn^|G`V(nZ5X^{!=jDFd8sKv^Sec~;PeI5 zdFSc`1n-a>t@@|ulN+)d_i6Y^uZY5T@ZT0{{Amm)J^0b%BWwz3`Btr-aj?IIgZYdHJzv#B*dI62j{cSxxxbG;V}R z{(56|c@3fKypHI<5gi36KsrY&raRfIdF$)mIzY0CI$X7(V?84F@cPuZJ2R(1xbkuh zZ5_VJFnNa?E3#dei#O79Jw1_En|>GD&z9V}JpjMJ1LoxaBi)so`tj`qqztulY*^PD z1a~B~Q6UWmvOG|Ud0uT~>1KFF|BPp&pA;O^^ZBV+vU>WE^WKhkplN!XOtMUR^RQzq zrg2zBHUcBnnuWo^?CmQ`-?Q5EV440QpST$NYb}mw7=;bV8oECy8;;N=n2@^hOn3m) z7%%$hr#%54I|6Ir{$5-`SvSI#J?sU&8RlG{$HSoZHC-pbL+b>7kcg-`jGrO2f!hCN z4Ce~;%_crx*#cx@Y@jZ;hy`=WN7y*eWV1-M5L^bd`8J!=>pv^h6ieSJQ{h;_9S3-T z8y;OmgGz_sB&$<^Rgi_rvrO`)!?$I>E)XX_|H*bsR|Byf?0*|_B=L~bQTYpd4hea! zy1UP2XAXWOWAt8_5RZug)F2p%qIEAEIQNRg?jF(3{z2ci&(?e{0^DgS$wQq;sh)FQ zLP(K1hG4=$!_R)U1}Ef1nptlNiTieOi#lvhuRzsCz`jwDe!<~}fT#8MCo-O$c!kZw zf8%mE9Hz~H#Vim|)P5e?IUyidHo;P{w@YN%D4^eh+yJz`B|p+j64M!m@xs=dl64sX zEvA@0prWaUli4uK7F61bSg!xX54sG<^!#vCSxX^Qg!9a1e=hC#SBVe^ANhZ}^z9Z+ z5Q5G@2K2KK#9c)ip>s`!dMnHs5CYK7j9aRA*Jn^OL*o(dKdxhcFx~F_@AkXc7BIq=o!?Y=eP1%hiU@rGIR|ZS2pvpP2Sf zItDMVcYbXnMn28{RyMZ$X0o*wOi|(C3nrG%x6b_A&L0z#Nz4I7!BAG z1|0)mZ58oM7H;2W8Vy?uc{l2O_8LU=Y%TaE@jV?xVFq1uyNmVPsqFB>8`Cq(;waKr z{B{YyH1`m?+@{KGnF-RSSHFK@r8_nRlrTm2&T$n~^RFlfF1}CqvL9dj;^%xK>XB3vS^Y0^ zl+_voSC1LIjzV5bAOPc^d^e>uyrk8#!0J;dn@tpD&OVJHB&e??tk1VN#^0y!A8gjUY&_V> zrr(Lg-XUIUwBGClG92bX*>g6ch~cM=Ri#tSB?f-NCm>SkTukik8EDY6X2_>Y4uFKR z#n@wgVYeouKTKi_$T^T*{$u$7S}_70m>wQLF><;s&EhK6x-iPul({qswoZ@H$_$_nI;fnnvIDMOu62uA;O?Zgfr;C+U#I=^iGC#N;(NiPYpDwle?>Y!)Z-a^@I)r8{)KqCSF>e}SYz_m}e4O-~NSjCAh+p8m^gp%H)fH9C$HvSh zJu;L>g(5*w^eFK~givH)#hh0sLI&*h^2eE>(QCU}kf=O68^%e)}Sn}{AB zzJix~%>mHad}pfQIe9xODyA9>m6)Fo)GXjZz{Z(nBC*e~N}0j1g7=82vFRrNti~Q? z?Vfd{pI_u0fYkwW!OZ1dP|54w3Uhq+@AI$!1G|s>*DLvr`2S59g1ra+2hKnEzma^) z{~h(<`~Q%9*b=z4Bw`UE_BU*Oo<~m+3AbQ_d{ebY&q`Y7C@q#&di0#gdp% zL10#Usr4HgBU&l0BEw5*OAunOSt~2hAH81>n*n-|zs+%aq3Qi+QXwtPSw5aEt48NR z{w4c@w$A;O><$6P-GobxvGF|;FAHQ@^V0s_5*7d$U+nKB$_s;r{f_+u?S@5EUAkYH zss+NP8=qvhf*2mOzR>@`PN$$alXFoYOfv>H%mDa5ycslP%$#%>h|*epW1NK;V>aRMH(uCwAR~-{tIq( z7P>o}mb<>@DYuQHpDzHm8|x!dv}gv^__zjqgDNAw=$88m9r)fuXp_oc^zUTDQ;E8# z67%lR@F{7zO&9Xo*<7_mgGG0c9pGre5W*0U(nK1m&pZoM(D$ZKFvza_6Q$pLAjCbH z+3AM-72Mm8)w_mfs5Een4v=AReiw9|gc5sZ@6#Qx+TYHRHhBZOj@AIpubd?9KCyCw z+Or8iRY-5RYr6c^nd}T+KJg_kcU2oRgtA3U-IdDq;K#@7KZo{V=Wo0QXgBh59R?mK4=E`|5~gU6r}b0YSJj>=J%J+Y$REEta%GZ)6s!Ksi0C0 zKs2csbh~HCR`YJMdF(!L&(v&As0cmPyO4 zu`CU!A|1CUVhALQ7)i~|mb<^baZ+$&#%0!RXB(ZYHX`uY%kVK_==RU$P?(E}1Rd9*{o=|2qV^XRe%yX$9s%N#B_a&;1iJ%z zR-DJ^5&(U7t%}+8aG3zY+6krelhY{~j zfUjbUIzt9#?04j&dP!1e<&w&;UfBo#0##lW!d_v~(+NHF^}CVqiSFD|!D3E^ibt_F z$dYb5S9G1)qeBejFVuTV8TrLvx)>_-CGb5i#zj{ z(h0KZqx2lHkkerJU7lT6H@VUQR;pkdKvzDn>~`%#)wuJ|`l!4EC)OvxrE=df1?q&*6^Nrx8>HIbT)mzmIQ2FCYn*=E_VVur%-xG__ zWSfAQ1-blJRwB~75Ub%_OhlEL{Z>Goe_9@5hxrgp14z4V_fzZXXivMcI`r};imU~2 z2q70;AWKGkg~S_zb)yE8MG-39ry`^O(kf)dJ-G0I3wb1$vvs z?GzMe8*(2{?;ulQJ-X7)ZjXwF)n=y&X#aTN(=>g;_OMLF;}q-h^ZPm!cWqF6DaU!f%PhXGa7Ca5e)Ur~*cDCbj2q-9T3jm5LBqoqNt=xsd*pzCo^-z$f4ZoY& zGwg?BsHX~DFJ2}I`n5M=C;T=+{NOWc7z`8gLb{`6f-IfilX7U*NK_OBb}CY;71SC4w-rKBf!I&+x9P*2WY>(}(0ur! z`wpfv!gw%Wl>y+rf4UYjnjdvB&pSF!4G4OVo=Mp;h~}vD^Mld5PoIO=A++1PB;igR zG*sHN2XD0Gy8+6?$b+f#r3!WpMDxPw`U44q6Rsco_G2%#P=cgRuiYPg@%B|TvowB6 zJBJ7mJpy9Jz4`AdR_)2xldm`+0t>73kLtu6(}5kz{DlCEEkoliD~$D@YL?pM5;FbC#^*A}oObb>5;k2PSBwbnmF#Wfp7(9Rt9L1>*@e z3{3yC4COZ5NvE{m1PY7p@x=#(eYmJcjC)tqA^R7szhFT7t91;Bjr(sQfBQ^0fnyULTNjB(ObaYA4kwW->}8Wgm7+%G8& zwXOPNJ8yuVo3?8Ya3c|Sx`zM+^IvnylFT}q>dC}RX;}FRB5ZO_j*@HWe}>&_<^0Pf z?YGOAvNNT@8?&Vz)dE!@(k)q}OXhd2Fdbl`H@u7l**diKmcw{OyQy!CjIcmVB1bu` z8Q*TfQ@7wz?7lr?Tpw_;Ao{IrJ3qUlO%7w;D1duG2ad^#Xy#U>z1)pYODQXB zaRZv%=zK4b%O_J5PfMQWP9vCH3@X5e%Q|)9w6*6Nc2=Pex*RSg0BKVe!^ve9!%bLy zo~1rC^HtdqQvzn;%?B7+U{reigg&xYKP0MptDo5gt9kg_y{1ycopH(IHIH4F$8k1p z#`6i1CFG4&oXACB6bj5PMLApX(|KKZG#ACEJdRdnE&D-( z!A%>>eiNlGmRWPqdiYDLnOLl`x~i7FJ8Z1d9e_O@Z=PX`q6NI9JWcAatYyFd8P{#h zVc9Sn*B2=&`A&f99#N%C=+G7R5eQPs!Td_J1VLAhYsDJi!a|ER2 z;#bbUC4>~r1eaHrt9VR*wvdxhuI;YR{!-^&)E^~FzOJ%ZfwSd@MEeRm`$DSis?7WA z`Gq#BY`12b<@_R9JP&_cR?M%XnVgnAk{B4Gl4RtqX4}EW-s-B-H(H`uT%uqdk z(g}q4+o_(o)Lw>-!><;I6qfP@+;1;S^6p>zk5!&<@(K<%?RZ|HTU@-B1c}d;I(KTKrhQ)9y%GH7wNt~DEiXbcrovv{pG3e z%2dJ}TwkB_Mp@PX&sR^9UaVReBW!$f-}>FeG0#?V-$s;(QCsQ2{!CEsP&{2eV!wFs zkV|V|{Jl|BY%iXQhG%mWHeX>8KnW#$3u+r1Wz|>$O;v zWOW3eA3VTH{3QNCwTg$9OCUuhvW8(FsQwgrU9Tm!n&7zCwM9DPM3mWO-GzHE3rZ4a zYeDyiRGA>3Bd7OWE~nX~+zzY)Q-96SY_y`wQR#&Ea@daI;Rm8gNWS}t@FGE zU8gBKckI~JAFQz6y~TQlqoZYCzJHjb*P-drJN+uH-t_ChK{Mvr$-q=Qi-r3{+;+DLo@k?L1%X=c)ouoJZA(o?s(50 z^WDbn_v9rDuwogRkW`R{h-@b8$f{TVS)WHd0i|CwL;`d*1b<1R4s>P}XoZlp!ovE` z(;$a$m-SZf&`l$^Dn5&1HElhku(-!)RZaiX(er0o@m@t;ABbnMMS-xV$>Dx5b(9h{ z1EfWP=hkFGH3Fg^3seVZzJ|K6x~OkZefk6#hsnMdlt4y0H5qE@GY+06*P2RZ?(s5p z?pAFu4A8;s3As{86_%*sn+X&}3+W_WRWw)E19-WQLooQE9ASpsY#P*Kqodk9bYa3d{dWw0oMEGx!=-diXsZP^eaj4+WV=HX5Y3o5*taNy?V(5+k7MG0~RMSC2??hy$jfv$Qh zBCp6bxkbz9iABq=>FV~X=1qi5b_LMCF<6k=@i-Shd3P@Cy}u2r-Xz^})B9@RE0-P` z3X{tthSW3=Edy+LdQGv13@5ukrT`pQlO8T3w@FKrN6~cn`d7wOLUt3ts+}lVKa?si zctH*KMc6N6Bdw$#Ml?m~d3juKi`3s_UZxDqM<|qY@O(hMbl2eI7%^x@hAJ|HhN&q~ zC?C{c!#?TNBO6Q)2lDKM`|$e+KUn}_`XDtN00v=W2jtF`~Z98a~)DwwRfYzKvbLl2KUqLXw8R~_jUW?q^*io4#Ot(qNCZR z0?naZfWYnO`P{Zq2@0Kdf7j)H%w>4opy3tI;k?tSsk-fl48?ii6Qf5P^J6pf1w`p7 z`KS?E4*DOCcA7O<2E)NxtUS2e6m!vbX_3xpxE5RoGzI_oe^wa8eOhqG|Atzaodqn3 zl>Pr;%Y9LeI+sLsm)ARh+5jy7fv`fo!@ct=zbz^y;WH-MSa(pFif*-U0{Ip+Ay1BR zHXN3*vZ*IW!%*)=N6DRbebhhn(I|>K%srf0wP~Idvm~3ENO6q5e zNpfRgPpnzyzU5D7|)8ypjIxd>6DN4ZscMA$QL}#Ay#-YYR zqxKwpwCnFr{#}rj$ZOdr8qoI<;)y`6M=Oaz{AhtQV9m}t=GlKkv)(&9*V`CUalHu0 z1ct{p=dNT%VtFQ`2ll1}`m9+t!%Bk#cUnmly~mz(7<=C~6}A>_Z&tim_w!~n6C=0h zx-tqS_;7Xk>xTghb?BA0b|Pa{H@&l4&SnGU;P99NQvo_s=`gHCc(WzkW5%Y;08}S* zJ|$B(xsmJG<&;u$+|#qAm)nH`;Bo(Rv_E0F7#JSu(W@fHA<8+&XAU!hX2HHK9!4d} z3vB%71Cy(@jZY`1_9DX(WQj>CBi4VY9(y$d@^FY~9AnrHXb!G=d^1j50J8y}4TJ4sIq!1t^uFpE`kHj zU@6!HV8VV8mrJEAkGLYmnQ8qxjbCl;T9k6++ND6)l!2l`kx{MMikCHgj4&Nlc}>{l zYu>gG+1U%|`tJU*)Eo+AxDZK!OYO%pDmF!S0a=N;Eg^Oz*W)8M_@1SN<0W*SBc~EL zI8%RiVFLj047d(TwQ4%ezCKrlL5C?&%zz8L^M+cPVg8a2%|xJPls;_fchLv!f4yS^ z#`iI!7rMV?c0J&8SKM2i!_$hb0S1FZcg_JTFLzEYIs_$P%QCqjU9lx;Xwsws9G<70 zEd77nl{)kk_2BgiG8dd9lw{9Ht>&d_qP zK#U($j{SM3Av4|!)$LqZgmZ6}n<2XmOA5Y*jT){MmjmndE{VCSg&PsOk#_TnRi06Y z7#+B+K#(hi%8fkx!}j@CZdo_u94**Kd!#g^vKF+3030V2&S;q9@ ze>aStR15Wg3B&z!lth351~Tdd|yGE&?{90k70GG=p?OZ`OiIz zrxo+|%5w@`IKyOH138)a0Ol9;RorEi5Zzaj%CIi@PFEaqu}km0kz>s|_A==sRf#zP zeuO(HcmpNjy@vV)sw>m9OPiSByaA#G)t{eA;4`rR;^hCvxS`D7dPk;L&FLHA8hb6U zy8B1E2^Dh*`u(vuGSbpQjv2TTF#Ir@*~!;{AL!MNvHmA=1I=qV&X-R+-5x;&F8Vt1 zPswOyD|c`A&9fzI&}Q7U--TJ2X5M-$&or7RX86WOa+=zdt|n_VF)@1riyI6oQ#QX^}e3JLrYRIo{_?Df861&gR}<{#|?>XqgBMJ99(umCS28h~QO zukE!A&Ug;9>AgKT!$nxqWcjzD5;N{(_6Z+S=@vTpEHGw}Y7AYg-`VXjoF#G=# z*N<-F{`5#7`1g}H4$I%0F5a{Yv-Tu##UaZEbBy8(m(@ z&jZOhr~-TWNgIz`m~ig&;ul{yfk&Qg+&D2pXW2$Qpe(~b+oX**ZrtGb|8q;%qMtg8 zIy*fB0|jHWKyr0*z=cOER-8D}@+{tV!AcC23v*SQ?5!en3%J(^=&I_89xA|7CC{wkdMmQ;rEQy-*fXX^2QA&7(_BFE zA9|Nu5^8ivNKE{v+gTGlzu|0JbX1g>$cKknpv?vWkt#x-j*Ry&U7GYQmibNe|9c=m zZ{1p2xDj|#>46E(AS>K~o?~iUup=TPH`n+5T$Wk;4&Qf3+I-W@>>3Z7vAVjuijd=Z zkYzu%uME+e=rLvT-q@_7qof;QhIC0{_jT=H1iVyJqcv|9pnud7KZq*`7UnmX?+VJQrI>>~u;|tJAuW zL#d#X^B!0Oo6I_5(f<9p2?+^#d4BJYx`^ycpU;qNAmIiE_ie$)%>Ai;a0_^F9Kk&m zWKHg%r8lxRa|}|86)6E>U$tMHAT7ZNISEi?@XQ$J;04>iGCwOoR?(Po3>EI5*9YTTxceen+-5nB~V8I=N)403L!~1^s z*PWTQ?vMF3S%l`aoO2$js$F|mb+D3xBr+mCA{-nXvb2<#3LG4KB^=x{LkK*0#`Xrs z6b|kkoV1v*np@i5qKO)TECJlVV9}_52M6M`aVoB@xd#Ua;J@ue0k1RXP6$>=vlYbO z?c%ob0~DW5N&CQNdF$-VzkhFUu%tCP-5P=$Nb1jwWK>0a?dA7MPcK}8GFBP_E(PcN zK1-=<<9Jq`kTyO$r&RhK8k)!pq)uieIvS&BDKWjkkD?mrPj75j)N&7yqL`YVq(Xzd zsMH)ZRwwg+_wMPX2N9DEEC?x)jXYW8$kypgG_Vu``+e9lsPq2`U%Xu-m?Q zdiuw2^S_hagv8NIXhow1$a;8BPkz8<$B$=1Ll-A|>oxH7#8ql^KLxnH^|s~H;Xmjz z!>5^nd-whI(}NQ7|H)x#1dFhbuz`w0QI)Hs!znSpPeM#epg|G^3pXVLQ@apPs?fXd z5f2?3Cp#a5e81hI61RJuZ*C3H&@jl$$rMK7Pm0J`Y6}~T+Ue7XeD7VenX7UCp^hl4wUD)%ORdh{dD>5)rNWTG>=xH9{ZZj=)oYu4!T!Dern zgMt6Kuhn2fq30!0!mzHA=K6e%v!S8N;?9v>g~dQw>uuzn7dH;0J^`P#wf95;HkD$! zBgOjq)1}Qf_x_0nMW!Yv5~BPr`5eCu(JFsl`pR-Rk<%&Fv6B8gdD>q`vDeetBx9kiz_m)Y!;I zT|Y)TOUVa@ADPLwwl!ZM{zXuvz$P`J-QYiCQyZDCPMT@pD1GkigbNm&sHbtfcQ{=@ zJIDcrkY@+Bs5||)Np#DX;@b}W$L(gbHby=2>UwdBcA=h^B*=II!!v^{KTPtOpsN(2%Pr33 zs?+a?o)=RM%`Y`SLKM?@yq9)rQ_)0T2lpp%*hWW>rZ>I9OPRYQVovKWic+)duVNpz z4Ywg`x!B|7bGfUr;k}@>K2LVUN!Pu%CTcMq*6&-pe@yt3VAD)+TVGq@Ld0(B;G)2o zQBdMsWJR{9EV%a>&yC#)xwQEb|6RJI!8w(Da;wSwL3}ai43C@phZ8~H6-1G3a1-GA z!O}G2ri1l0_5*!`GE#DNj@D|*%7xiEN7yUwXd;T4t)I`$$!7Jz+S-h_1!Y7dw`rLT z>zfAd{6AL_5XXSvG;#N~Ou&LVd!q}ibV~6Eui$`9@p5NAe{l9wu^|g={$A#a3Z|J0FHp!ti-1 z8TfPLcYmcCY`qm>%ad=xb6J|`!Ywb=r2jaoJm!7`gIvE1h}o|-?=SLu{?%5OHwZ0- z-*q%Lf2B9_0M*waNQ^9;ND!IS>FOV&5qW2s9?udIZ+Yh@sl>c&J94t@!zIrKv#mVX zIMu;S?c-o$XzgP7Gq`{4)YRpW;#L#7saG|76q$@@kP9LROYP^e36|UZk*MZNVwok& z*}UD=+~Qm|Gn1_-a}Q-@7S@2hS=X8F)=EwK9_FxtjfA*3L)?pldr5wB0_vg0O04>LW-1zm97<;f%g zUuP5Y`~qLFPOKqNqtpN=?sSo^A)w&eu zEN2W%dMKUaU?Y93I{+tF8|9f~SDsNu z$z1^5Rpzj*PgefOTKVxDYw`vyk4%hYRjU(H$3h4+*;R5v zS)&w12j}uh{I2m-L6aRjZXO>os&BFC^bg=wJ^_C$InYm6v}F&^n#^Z1HWSxXaB3C- zW3B<-x5;=mWe$6cx_~;i|K#MgW~+;%jAc_s2BXNfqnMgIx7BP&ZT04hkrWKCgF7rg zp{SIEw*DDA8+zsDxteLRwz_)l<+J;5A458Kb44GBn!-B+M)SY>DDV7fGXNVZgZAJ>o3%ZfW!R7?$%W@k?c z4UJvzY!zWYe2+J*5D_!2t)24vb+Fa69dKtSKWVCqi@3bngl4}M(H(AY3+1Y`pJ!?K z2>VqzfWR7gEW6oTSX}IUICb4s`8;2NaIVQ4Re)GFzgR;}P0FnE5LPq}V+~DBPNAR{ z3&Z2To7}B$lhd=;M!!0a%f2Y@< zCJgWQPOBoMGul{5*hec`ivB)-(8?l)4ox2=S#I@n!=4OBw3M2vYHW+RhDPtLs@87Y zq?ouQ&E98=lS!onMm>JmY~mkn2IbR;7>mN1l^m)I0xni+>gkaYYPS{ZNvo3HKhNQQ zWo8K&!BbVY=!`soKoEn8;K>^;)m2s`0(tqt?uPy@UWy{7<#yeoATPUntiWIrWYJ))S7Eq;-gkts-FYeT z-MDEni>H}@nV1y$p?O@~QAYNvD!0z5j4C&IG(oa{+EwGLs*GbLDCrM3eLl9FiDyH& zu*no~{@R#KBO=v3*+NW*3ZPhEQ|}91VkQ`)+r97_R4fkE%2%u8oQI#yMx@n`)MppOa_yyabyBR z@9(^l22Y#`>NasO^;?|eS#uS%lxgvKJtqD#%)9V=KB&-R3!?f?R>~eGmM=~HOni^| z=d2I|#9eQ$^{(0qoqL3cv9SrYq*#d@g%qCViUKY+I?tW6#!{VHW_FgmQS)yI7wIg# zTmq!Q-9?(UrbfyJ%9pn3>NN^@*AeK50kk}Kw@vr$_+-)MTL;hiJyDGls@2rW>(rd$ z3WF6=VMgI1iV99J|7o#pnqUz$3@ytVzR$dt^QcP7>3r-iAn4N7jyGILS z3G^u81F;xyhZsXlyt~1jBmQpQ_1z0nr~5gr=g;p=8FL z^?xJK(&7fgt#v-qZa0`;{pVi%kv@UR{U8k{5%>yws?0-zgH%#6gV#GwBFDn~uiaw9 z6}!Ob*p!~m$O#CFAZT_YxJ44pni-pK!xk3?{{%?ny!v1l(u)^?;xb=fw(R<@YqWdo zA|0VK5T$ECLphF>JO~v z!qxN40V`Wm+DDtFS2fP3+VFmV%Z$qNhUNv_Z&rUVTAhs3K6AnZxmW|#;qWQRf_r3W zyzch>$Mx*#Ul&(Fd?xGupn49(qh{LrLV7#TE8s5X8G79-=)Ypp2o@7*dc zF7Bs~kB`0Nrk$Fa%hun8zR4tOkBg5dz}tDuK8a_)yIebQ)8ck-au94tOOBV#irMfL zyK4VBu-4r}?Z~ZbV5Or!KmX3K*ZS3bNy49(IW~>Xf9r3(oU=jeDo=_ zNPeSX-R8dXUC!g^&k!3`_=(-B-f8wv-il`|19WwV$iWfvKSm1(QKkpG%;)@9h;4_R z=}O!1Dba)TN1(Z#e+6o+(tGNQO=UbbznTz?kSv$3*63@0eE4uDpQ)d|d#_orqR?>I z2kRZtx3I8q;93yA_c(*iY6*-46xS<4A>#(-i7W&2b!VB}?wHAUi!k`kiszCe3%-Q5 z#y_B%x?_#r#r;M>Q=Xw0#3<)Zj>Hr7L2@1rmOVX02*3xo34Jm!Z6b3E%qX))(^XPy z@!F5bj$uVi7Ndwx7*3`2y%KagS^YO!&BHTi?Sl0!tJMWYh{gM=ty_aBd4Il7FXn2+ z@$9#e85801J=+jwa98L@8(|1o8b6^Q#hphEuEe~CU%ZT=7{}5yveVXftGl(}Y81y0 zYezVC0(*;9D&1d$`z;!;18m?^``gd=Hk$c^M0xA23Zc``^ms--!FKbTJ9Qj|y-_7% z+lSP`?SjXqrmhzNrfDc1_Ch1m@d+oYRU;YqeQMC~$J(dA2rT+Ks^NMZq?E?L^oc5m z3g8%y&BYx23hbaaW6*Bw?wa}hSf_59*P}~(c+r|q$9b^SLqU*Q!oOD~bK$IBxiK^*o5c zm3V))s-x#m_Kym;m5?EWdXkIV{9>n!{1rO^i7vwVdTFR)eZx=dr7`5PVH6vko5w&Z zwW{JNyZL3FirK%<9w7l8>9>(~3qGILie8GXK1#wfBk9x{xMH+RkiR;oijhhzThwZH zUOv80oiKkSap)WTv*@}$5g7kwA&scZ@VJhj)DtzROrQ0Z^Mf!c-`u~`YYV(t4Z8(s zh4tE;iDP*9&Q)`5vR2~=wAF4g+hPbOI9T58l164F_dr%x1Orc#u|unCCMWgFJrN}#qaeQ zEm=$ivd@iaX=>QD;&A*2^JEdqK)f9nNJrH63Qwn5 zs~nthwY@!@VWW)&Qsg8ib{w?1-M3W~bj=Ug-1Yfg<%iQa zCPv~-JszJ<85! z2r@9z)K)PQ0Fz8?4y}@>S$^;TH-7iB1KQ5SKzDiUK)})v>DN}aQ%Y`h_SdHwHN$!_ zJ2}7ktNokn{qvp0eB^nQcm9EjN%MtzpAsWVx0n_yESxI}D@jGnHv;tlCYk+e0m(WW z+}qf7Iaq2D3CfC3PWQYR3*Tls1{Oy&|H{R78J#pPJ+<9!GGSJ=hfu(NscS~*MwIlS zk$G>b6YDpdTo`ihI0>ISx04W)m$NNnMEYF4*V$gYoZRQ@n?+^O+to!YYvT&nT^WD` z#y{v0^~BkC9_^d|DBoTG6q}YpN`f)rvenDH*ELI5zT|@*EXJz*UCh`iO_QFO;|FK3 z7)7j|xFVQtZ#A*1c7+W6eAnNKZe}Q7;JZeT>t{IfCQL>6BxkEk->8%J1Z`O=ySxS27 z=(A%6n@!j{aaxCC0McE>&=8Z8qe~LAM@3^HOWTD#`K#3&E-wM!g){Nu#KF4CDmP%o zsh4l{4~7%Vm)`*QrZ_Tua$a)%T1HFq9?z$ru(SS<9I!uMlh^dp_FVUPQ=m%zXsahz z8zqQ*oq6d9Z$$_`4wDF4{@ozBT=MxIMYFQ7kqSV@V5)#E><)x+?)+hBXL%eQ=ib=p zly;@LX}K-Y1u>%cB@4P>u=SEN7dwOFp9X{9j#QNSd3MXLYC1Yr;zx4+f42?p^AvC+ z(24+nqL0zeMQ*%*k|F@8gG5Eb~GLH$8MQGMM;xhwVnxz!MV@1zQ59Bzw!0g zX85%2Y+_78R`$wlJ_4xw3KTWGSib8QecUY=JS8B z(0T}ImQ;<;Zd>+hjQe;mGHiOcum8>UOL6!tI8w}8c8lE%v_~odtAt^fnrf{&TSy*tm3DQw3YW4nc{gEC% z88kBL#(gLt5g(V}9j+(=$^B`vxsKJ)$n^=g&V6fT;qI%JYL6T-@A}4WWR_X^>NOLz z-Scv#+RxjAK3y<=s7$-rBvX@K0>YA9a++wzaeSU4Xv7yRrCV>3>6IR0+Q7`0?ll6Gg4Y6=H+BOJ-yJac4x{Q(Ws-@AaDkDR56e0>AcHq*K;M~ zGFcSf+^CxoQcAA)t!$~?bs9wA<8v9+hSrt^J#fN6H0?%n)5~F-aAah2HA`bBdg3CV zkh>EWvXtI6a(}Yy)tXv%;9dtErv4x|7pU#TxU0_BS`wpstVmxG_(y3{Ffz~yI>LIQ zp0!G#z{p#7KnDgR^0f*CX0rXgSo5PRTH_Ft`D6;_F80Cd1-q?!B_MjEF(~pLr6U&*AT? zyw?tLKGt5VF_eF#W}K9wFvK7kS)VxDQBBAuAE=MMjom5_$lm$9e?3s2u$hNs!{GIn zgo%?^r?@j@_!VMguP<=#cz^vRa>^hXu!EDwRQfArBReY_E1O0#x4g*2)G8u$!R*M) z#s%6Rg>wEy6-ULKhnKsPCaX!L{e`d?4_aQ0z6laRYtE9S@h)j$ zkc^?~qVUi)`pu@40sNru>xLe7Et~WWojSPo*x{DzaU@FQlKB(!ds8lHy zz1@IF{({0$Z2Ec49{R+_pp=w^*=9*e6JDKEAzxGtYA*uhgXvS1ne>`4YcomSfYhpZ zWmTAj0j|r#pHi(@NdykNFf<33nshEl*gWc68|@pqd7cw2wBT-GeqJ!bo55THR-@N{ z>JnQ^*+u%6rVt+?^Ig+)WISb7y&Np|!3T^HfT?06o$Vc9AmgbEF2@nsKCYg2YPu=u z&-pHv-CUfb^q$Z4nraDz>DM{0xVdL!$}d&d6ZH@j0BjI{Ak))T0TLzhPXRZ)?cGf* zOqnejqbh(dSJt*#_;ha{#y9qFzvo)j+v&Idog33#q58#aJ@Pv?!IbLRkeA6)(f%+K zda&JsJ0{pK)jdlPQUbaG7FFy|xKygvwmzgjM>5;Hu+0q|>HN63gpKu05?=4dWkJ27 zq6Q7yg(154DJ&L0z3!_WPx6PLG?<9<^(eSAfKlO?QYux@6{H{fGqwj}&DEk+faFIZ zw&i=$eDZ9=)GLqR?$ty)!3d(`$3hCjO1H5jQs6wyF=pgE2qB%!CcQb|N}Ykkv@|8t zgn!it(nc8y>@_>RMjyp)l-V4|=7aS4KQ-Ndg%q2PVpOO^3P4D_LW=y_u?q0J+Vp<& zjVw`Jb$)p3<9pqAn97AkJQ$sSvm0ZNk3S`Q6zLb1QvO1)LX{V)XDlTYi;X@ zkEQapcsJ#hHTjeO;_jH}>YM125T0XLd1j_-oZYJ9Z2Y?E6tfF@gmK+3#vDud7SqX%R@IzJkVu#=X;C=Y z`HKr0z~s%1%&)CZ&O=^`_jIi!mc`Y`xnNPB-Ldoeno#PzN8iA~G{EiIIL>JIdfeHk zzGLtcN{Ww-BypHZm|SbU;P`m;QkshDletxVH7yng!Xp>pzB_FN2mcJq%8zt0m&E7= zw4Zm%C#R>5Y@B$t6xsbK7&W&YM(HoayW&u9aKO$PXOusXrfyznE7)f%!K~^LJ*qi^>0u<+`s#<%E{qW&G=ARl^6nCgz$dA5_j>VZ- zPO-2xCDWTrZ1CT$Cvh>K7x5rYd+~q_kCI3y4diM3v%@^mRgzMC_a+5AP9)L^s*2e$ z_W1(=F9C}|w16Q&_X|rem7NG=Sxkke|ej~+eV&`Vhtsi z9vmLhu;-iduOdV)(=ABNF$*cYLuj3SMj zPK*hX&BO)XcTz)V%5F~KxP&zZ8}RtyE+>2Ouh|lfO*j4+o9}EnyG?sYdd>$aLc^1r znC~V%?<%OHzvDYO-(~t@*m<2Lb#9EA(~5Q-_HX4YTM#mqQ^ofJ5pHcfPV6UQqP)To zE~oeC_z@>Q{#k_0^F_Th3it108@`@2*r8Z1_zxD+u?mT2LQ0Ve@?LyzMS%3;p`_Mb zkDQwy5!+AUl_n1mm6B?XdjpTSZ*XL=?9qkO>1Riop}w*LV_$ix-$w8#L7|bkYmZ^! zNUzTKvm|m>VJRt(<<}s8rDu?9cg8%Pf79*kQc*80KN2S`H_+E18Gp!+n8{=3E@D_z z7`$>MEIh{6=hHyq(8vexCzSQj-V8(;V@0I~=eT1BR|~AaPM5!x&h|x1L-r{Di_h`}4@i`T_5K^*ep{%Imd#$gXD>4d@S|0m*C2fg15T8TH-;hp}IiJ>(kYB?K zUlm{aJ%n$J_}_nPitb-m#p$3RD!Xwj3D(|^qU|GzXD>{>GboN)*p5*VbpLwOc~`_8 zSX4Qy&KThWeng_pkN+@S5(g>bvPw8w$^MRPRZN;qi=LcVs_5tgl&KhF;w=*=r9N{yRD__ zhB8ef^{57~r3*Jrsc75WF7~>0%n+Ju2R8rt>NlSYowsd#vcvEY2-6zwXg?+-$n=Nm zflsD}=J={+E-fp(kD;2G)1;z&d^Apsq4IngFC{+^hjdJtZ~8AXRB5X6B<0GZr;8FZ zF;1SCH?FMgz}(JzcL{?*9+{UwwuKP**r&V^%F4olr5dS2vsqNVU?I z`WVDz3ObkmKYyD16FqQ4*05O^2MB- zOqECTF2$m_OdSUo#@qo0t%(PTUoZX7AKL3N4<}n*`@tv^D_83opHBlR;;gQJkKe*L z56LMK?*Nr?gertCMm9P)$i>F1!Rk)S%L!eXnNPjUj117%t^3?$JlqMfkFiyg2)J{5 zXbNIUVvF>R4{51>d*EihSnTZ+ccdCf6wOu23nQqr>}2epFe0!D&EzIl--}{r5>8H; z0G>=7BHr86%)_np-WaS=zgxy2QDvqsY&qvyhEZQp0U?LM@O|%!VP!)>!Ow~YF`t{U zyIcZP|Fo48w~~-QC40JjqMuHCMk|jmNrFya!haOsIC18^Bu44B8-?w{_E5Qp=*$0o zZa|30nDxBE)Q<>Awg+2K>1t7!F}=Ovr_;3G8X)wp7)DaIXE=^d&YQuha09!$sOYs? z87{1{L+)PP0E;%kinq>^Iy-_5fEAy7RuY<%{;hN}WyllSc6|jf>^LwooJIwk=S;ed zSU8#f2AUEdhi5E)1GY{QsIcevC+x?=-^{!O1Q|)Sx))%QBl_ZE-H0zb0143Qb6IF2 zq>4pEx9lf>kKf%ziJcg?!dc->;J(mu+YoGbKG{9nub>fBDY)(=4k9!rF|W4;pjB}L zm1*Lp{2l;th>eMDgnI$@HHjlE9l z+A?fEx|B&#Y<_O&Re)lLcAwN|nn>Y`XGQ5CaPT_qS-U9sUpZ?Q|wVUop zcqYG!p=!J6*|B!4I>s8A-ZoKb^P|c#s?QkSkJ)$gYOLy{lX|${443`q;o4R?iJ-5Z z_D7$ClcB-AmS^5gPuZzq{lROXK0~sewKk`>JM4me6%z6X*rTBDHOeD=gi{6>7(;W! z8S0Lyp>b3qG$|4KeZ(#P<9vFiOzsWmv4GQ_uD*`}W%JJ8%Id2oW48wGTerr2e!>)> zvapkG^!1+#^Yg5*oB>vaNxwN9&2ni%QZcg9=5X|D_Ud5CLTPg(7xzp`3a$ZeozZgT zWoGtUkvVN`Gp5Cc%l9oYdhr@cHHUpP01yDT2;*aIax!;596deNu-(|iGTvAx5_G%< zcdf8r#8eNQcK<;C&`3Ys6?)=lkT+oMy4E6@kJTDk0rMfwtFfBA8|>b-wEO^2P(b&M zTjR^C+ePoImZsQvl1Sh(L7`4bh)lpDqjE8kN;Xx%^tvvo_e@ClDxd^3Y-fg^RDW)s z83C`86DtuJ1Lc03LUQF=p0pp9Gs=(R$jk~qN^`lL7mmQRlW=)p8)$xMhnANS8K1}z z30e;vkbjdH0tpN7Os8gHy`7!^W@95Vn%w?vgX)F#`97jYL(*^wy+*gqx<%3)su7%E zv0;?D(5;WX1J7?SxbQuWcfvi*A`jv)8PhX`gfeW02e9ReuY(2vDHq40mFh}dR${DL z5cm7uvnYcRY=(b9-;=V|Ok<^gN@SF^g)gX=hsaSe>2TeHGyxE&+dIsra`@byqfI;N z^)|naD>?T0!hFBw=;U*N5cgIj;)0`^Dw4K&S#eAtKW9R-v+H`i--&omxiq4)t?Enz3i1uV>;6voZ8J*RyI3iZ zZ;vGNydp`(W8pF%+HAd-ko(R2p+eD>K|Y+sRt6>^pUGvo^{`g`bsFLiZzX%W@y2Z8 zI-36K<=Szz#nq*)jpM}9dJlmvPv=lN*|hUkdiq9<3J z2x&7nueBD2+&i=e-3*GzL6777GQ9?eH+HqP@z*ies+0s}fY))qN_!qymrz_Sx~!j0 zDf$sWYJa8Xsb@H4OHbNZ2){32*fYrtDST;pi3x5!cxJRBlbBrxj~-f^`ZE$JcPd2x zU@~4~*R-Uh(NP4ID!reWGyxnPRwSes<*?m$pzY-VCopySROY*-oFkH{qD?yWDQqmF zbEsHfKOHMu;Tju@&#OQK5E77VY_2QiUz>7=ie&W(ZWpDg3+Je8khuOSTZOz3xmFIM zMUlLLRgYaCN18ZWiP%dQqKKxJZ2RQ%eH72t4C|kkCxwl6x7>9Ae7-kdCv($0{dCsA zy1_WSyVR~Go-h)9%y<*ksmeb*N_dQsy=%uC?FwYrp#w=9p#H`=qf=d3Svr4wgG5C~ zSEZ;hOS!mrSB6vOJ-U4nm$u;XjK(CUEfWyRu|us`!{~q0m;ap_i}GO|8Tq7PZ;ZkS z>X8=f0fF+d%A`r0N>P5oa;q0exi7@7Rzy?W`2>>X5(=va!!2E~f+TXKNb*nQ3yd`i zM+=Hh`#x0{13sbyf9j%3-SJOENt3b*pMyIeZGcMbVhIYbG4h-8{zj4a=q$+_Hy%x_ z?pN^7Y84bem+!wW+5}S>oeEv}#PUoja9~Y7rMATJHep|z(~MOMr+iU*ppU1{PE~aJ z4IC(JLNfg7TgYVpI%}&eH_uGD5EF;G8R((Xd5X`0F5eE{_2NmN7jlz3+FF1-Y4yKG zz9c<81qb=BWUuz^|KzZE?T{>iWdIPe$jE1q@1IO9)ryzxqZ1RM@6kgU2IYQYjI&iC zBcE^hO0HktrbL}k+=VCP^?d&=4Cr%^}?rW|jVp@a_flS$(O_-kv$NbQ)d@kK4shAf&0&!}b! zLU2kK2>%^!?R^SGYr=HV2+BH_E&rQqvZ2_yd-Q zirmx`UK`GD~&Z25d8|-Sgqk5D)_xhUAY)R0X|OJN$C;%aUq*6arIQDc0V<)fNN3K+ zZe+ZizH=>D`ov}P7lDM__5uPlwUy=60V2uuPMzVrkqvwgt&$^eLS+eV-GFRJ%gx?7 zu=tV`Gc&Gf>u>+J-eHNJF4zt;cG=8Cvm`aVU&WS^xq~H71_Eh~Lnk9j;+DDH>Go_f z8;%`w^2To6fh44nhu142WU*!U2zcp3K@{rfeh_cUm%O#>TzEyc0T2X5j&_QiFm_YZ zEn+SYQ{O%qCkYud68DVOT5%GqYhz{f@4`0*w-ISRrw`TDIi)C~%?G?M;o!csD~g+_ zw+^vbudftIE)g&K?m$65jlj;4&>Fr+C!R6C; zcx%#Pt4$2IJ66@8yW+}o;(o~w3EuCMg+WS625fD^<^PGQuC*dMdg4uJZ&%L|jL4sJ znjv`ES8DF7bH-Ke7-n|F3 z3xt&J4I6?E9k{Ni4qdW3-)mnZ;{rjO4hTrkHuscN{S=RtSxvmJ{=yU#ueh!hkV>I-<+hb2J6Ru=5@haYV0ewoKjeZn39L z{|eL&%z?@l5OF{_nzMUyGrr{>p|8(BCvwdxLK~I>3 zzE4(Ru=3UJWz24JSJKKo^{}?b=~Aq|-n=Y2NCalp)Bc`L9|?jQX_4sn?LVY8JrT#i zZfSNhr@XF~m-P*R0W1g%C-Kh0#3G`-qQ17tV=ZH+hbrF`z;|gw99NCrl&%+4J+H9)Gtzx`h)FbSK`o5=S3|Ex1 znbzi@0wI);zs7F6u^7ba7b4D!T!f4QR?i;Itc`*AjLM!eW+wyVvX?NxxdmM9x*$sR7#%^cRd zQsHmLw8Xq6T;M2KMgd(P`|KT$PF=EG^oN=EZO0gig`*%49YcB%2bHSzt^(%@Q?Mn@7|K=~> z0y(>bDJp&Lm41T*9izbO&Wf;-w94_Xne85tOp_hUOmx(T53xA=8?Rn}egSW=Kkn#KH9lzoa(g}Her&`5kih~C3+rKJzGIM!g;Ecc&0>y$)B< znpGY;d(&btCqJR9&HF6`Mg1B(BBlDxdaKEnf(GOHr5q9gNdT6q@6J8@bs{e6KwSp3 z^}dVVEWOb!T}*AE|9@uzyo7#t%|ywOQBvi<7AJ$ zYGO4ln#dwg?dvnUuy#-xerdON4_uCP2p>osG8X5cjr!h_&~OQz|C^NMTcn@2Cn0jH z+j&oGwWO;|m=ge@Z5hMsm7@18{5w-#M&#ev zWw&&j&yUt;i-F<*YJc=vE$WT;E03jhE(x=Wi%}svRE^_IIY#rpP~WnM_6||SN`>?3 zc@s3QF#xmJn{M6>Ip^hH)Jqu7q+MhHz3t7l(yS~CcuAoqW=Nb%FKaKCQv8{Dvq`J1EpU62k+v|X|uxA2~qU)j>)4!Wo4Xk z=T12BcTBVeGDi~mCa!ewS-M8I|9{-73_x_V4s~Y55m866PpW$WbMNNht32E=`*I z(djc`P-s`s|0bi|1FE8Z!9unP(!FqRzFfAb{`C|&?TM+eIPj6~`1=rl6w%_qXU{|+ z@K5H-u9mqhepd{9N+j;W*4;)bD5LafdeS(If-dd0WuDNK^QF}x5qO0AC%BTh%=`4$ zFW;B{gJ=Kao#1}p|9^Lg_t?K4SoZ4aviP`oq{ctW$Nx?~9SMojG8%NWKEZ3acS(v* z4__>eC+z^c)NFa814>~6%bvz~bePQr)Wa~avq2yw@z}>SO46jj4(>)HeEJMmH_NjC zkq6bBXN1v0?_#9I!ro(s;5RXXmwvT>-SYwsIDHgjnM7z(Xs=(e2A}0Gkvz?c_7M zqWj#IG|Kd9P-qX@2ei0>&J7xU-1ss=oZ}M`_}%d{;?r};6b+P*L8sKq0P$LD$x`p@ zlq+^pZhkgUp1-~&D?2jC$Y3Ose{^+sHfUX`d3PG{G_~x?mq|Y=3K~GiMqu8>Jwmwk z-tyD{^}D-ny1P=>L%|yk8-A||G1wicq$mOkUTH-^;rLdv7B?!9z|zE+`+P(z;%Uip z!{W?>eOEzn9g04=q~hl3H7g#_dTa1bORX2F71NDuwpeU>?x3#1SixNb)3(qm538dP z`B*b1B2JqXkboq~eMH7q*PTlfx7uRRf~t2%Q-Ct1A+4IakWTf=Pk7aLz^@;P%YYj` z&jyX8!UoE>5&Zqe4ij4%-PeV=0k9kilzprZR|AP$(isg6SEo2-cNGOh%@;v>?O5m6 z>JmGNpyy1ZMBDf9fjpTHhe>a~`ckPY=x8sjT>3b(6WTJ@c>6^zgKdj(vGtOfl7*G@ zz{o+QYoGUWM6W@&erobBK$ycM%Z>*#2QRCsUI%>bF0RMK#F}pWfFFwG}_pXJ>VCo=j9+UC%{cgb!ka`DWN`hWPaeY!RL)GN4_zcRUj9t;`)L2sMAeLrg8 zRAeSstJkcEC$EmbQYhSGWlm5ggr6?f?6huicbehy=(8vUv?uvKpb1#6D<$)R8hcMy zI~GnhaR_K!Vz=Epy>?Vv)YhO=qwVhh?J`_*43b^WLxF^!&{li9gH>m8s=?W&TZj+z z)7FDguYz8TG03&>I2n?rVepAY^PS$bIr%)f)ZN8~jlR)XRn_ruBxK`|otZ3~ zX-1;sY0#%~bTs{JD0Q;b*;$C}t#>QG3Xl&3%NJXGAMM>hfhf*!2Iwl9tGNH7Nq=$d z;CpdWYP{MVI!!`9C|_G!dn5>RI{%@shvJ{MdHRwypqG;3kmqwta^~g9zvPR$sbbCp zMjD1wC&v^nQ;3K;;J5U6Y94GDfPo(67a7T+;oMD;8jXWS)AhrbQpQ{B zCvJR>j%?B)0gYOgmMKmdpbIBj>VxM2*%OI;;DnMm-sqV*GgJQOPZzWGYMj>aaD?|) zkEtpx!R|i`A3)n+`LA3nS5pPz#g@YI=Hl@M*cw~4LmL$Zr`0M0CL(#x+L6%Kd9xxY z>y^dE3GIG#+7+TeW7KV=Q3c&~uAZ)k6Qzzi)CluH-O-yCRR(Ww^y5!-yjjpohfld_^ST`!>1Cth@ax^W;hlCO4gc#5cCclOk-(OCRc=|Sz6YBiM`n4H{aV{K@4?pbZqlki!i4B zbxz>w)zVJqCq~B2GuP`azdhReCL<;(i2{T3Uq{)pK3WU?-XAULQlC_SM5#xh;kXMp zpf}t^f$Z(`lxyG$Ru50EyzWj84|aZL2}gd9xINnd7>dtcvwY@Gr{7*oZ1fHd z0wg8C2w(2a>F0fTiax}X_G#}5Tq6xcUtJvVu3z=DS-|khms@t1tl+{Wh`7Bfyf#tx z=g(g6xNrB_2Z-Bf){~u`UH={50!_qICG#ij0;Fy$phsH5bm|vrPORz}n#k`{v(n{; z{moKO%G}%_QH8YT&nADr2tcxeA~Paz`K8}ulKJbmyK`EvUj>|+&Ch63=l`Sxz;tVU zs??c1E>$BcRRiso{TLK9v8P_t9N8@tddvEw1&CPS{dIaA9e*j_jT;EGDT^-u#;crg zKxw8X3=Kouq;r%(R)mE;@OKKIgL(U)(<~ve(4`o z2bkno??dABCTB}>cPmiS3K*A^W^)GUJ2llDc|x|Xz6y_5La9QJ0|u_Qmj`) z-q3Pr2oLY~3kQN<#)|xn3GG+x(-%>EdF*}h0#sPMg9MO`E}u1OQDDCbAZyu2*24j> z{vhp-z=)EfU`)JC^nXcKnKTeUjr+6(q%Jt4ATQuSe=2iHQHUs2Yyl>1@R^x{2xva> zdIo)u2}VU04PkjggYRy4g|C!AgBn_BH%I~k4Up9;p>HC6`ixm${D=5e_|1g4IxTzm zXlLQ8Vyr~;46V)LzhAZSh#2B)qUlh1_pSFeeiQJ{0CtA1CJDipr9b@*{TlXY>>#S~ zADD|A7KX;k#$x{8@7wr6y0MA#m<(lqx`L3+e-Qyns8avA$t6lFm9mn$1_g@+>d(vtjS`z zDw7ivJFNoeco>iX5sp+n^=@Sijhu0qwze_Z+a6MIo;!z=Xuqni8@=wsAcG`L`pwT= z0RiGb07XVdW^G(z+&KS;7OMVxMGZ7iB`29b5_lkk1zZ+gah9Zd+g?D|Tq8TS0WHw% zK9qci1{$67p8ioq_R=vhsH>_@PfZmicI>V=wkW-)XJq`%Tp1nxHeKN{@eCha`^YS3 z)LcSBLX0e{p+W3D=7X1?AOXhF^<7L1y1YE{t8dRn!MnaZVk328KF~a_LS5idc=uTk>fkEjI5Gm>Il5R%n?(UH8 zZaCZD`+wIuXPxuu_{9Z|``NSOj_bPa`%xCb1z)SByqukcM30NBDzymsDq!UTWU{xn zw&G%9?*3Z*QEY!EXU6CI2h@>?sQ$Z$hqH7yKYaR9k6G{6=y1wQN?4+_?m7I&glG)P z80c`=zx~%j<^f5KAx0vzToV_@k{-_XRf+DeLqTO#)lQ=k7-Q+8b>jtHBFiB(N%5_` ztZZm&e!&TeA3w-qxOHS@cM$9u|1R4t^_y2niTx$B<*?wF?_L!atmG9IPTIzRe|q1l z!mYQ25J-J5DlcDL5TaVM90m%rbXhd?n(oQ+|4sBuYHs?6jZbwj&0j2Rk5dP8N4H>_ z|0Z{-an-txy|n54c|HZA6!-J}Ta1a-(U^Z%RtW@eKi(_FSq6Y7exxA3tp#0KzC2`z zoLxN|0XiP3(*~m_msiH%qf3iLb{bZfwV+6QiS^iABz1}Q|9-o^Aco0qJ$+IiL&?C0 zAHh?7ZlCxm!QqC6AIL@NL=cb2|BiQ6MAn##Y5Y&cr8nEF)-1^RvvvVI?{r!p&5`K+^OE9`*__*yEtZn%y6T3VNtv(Jx$1<3rpZN*H)jNJTziM6R%#y~pw#~6O`kiOsWc;JtbiyJpcg@1I z$OiKk_B`>1jXO+~=BjQs&-(^#C#j`;_m1wz0VbFX&lF$j7GUV@uBGSuJSIaHw)NJa`jiCsh8dcVz$7{<)bzv_;`J;uPvn zQRbVCDM}~ITv~bC5C{{P{`qFpqQI^pq>3>Ls(Vk*GC%)Ew|>u(uic-TY0HMiCFfQD zHmy5;Y`Jhpj!yh$-E<;$@OW(_ItCk?Tdr1|%dl#ha8yEjFkHT_zY>0&!<1{X?u0 zRk%zS6SMh4MAJ#QmC@FdORDsXg=aWwzkP!Al>hi-1mT`dAJR{W+vL$1wcqbf{rcK; zqqdtd#fYNvjOqO|QB*&yCzgw3*pr^$^$gDP2VK28SL6Hk`;t9226pGCr`wC0e9N&= z%~z0I9V-8Dtac7wVdY0#ynCKcP)DEoslKXebaWyQg2^N#?4Jx(n`zDt`&wdFJhG}f zjr%0s)Ao|nDs^x*woyighiAm8vckm6y*QzN*=z$B`;3mBZI;{q<6hp`S^aTHk6$H| zZk@5JEbiJvBHW+C(UYMeEw4zgS0bQZyK4LXc2Cll`OJ)a9hsb^RFJaakq61Njj!_N z$?w;c!YqH<#@d?fOA`X;`nNgV9xUI|q;*%luz%3}HCvV3TI_Wa+?Uc!G&UZsC1*xn z+E>vqI$RaSH4ecP?aWB=+if(+%7v))Osc8QBaD3FKnSfAqqMt*z$I5xYnfEjP*zq) zN#?Q{c{dq-N_MEsC=*nY+gg1g3$E~N*#Qg=)9 z4FgqcL+ydRu6lF4_J5Ncy)Zd@KC+Wv{_frxv>|-sZLrZ#I%__98;P7=8!cB8yz`=#UvG{ZmAsPr zSi;d#{9_)OsKs`bbzQU`xXvy+O;{Ui3|Vc>lPblZUHS zI7a>XTlm(%$rcYcxu2bo0&xwmE_7o@Qp7yW@pa0sc)ABzUE}Tbtk+s*0rk7Oc9+L5 zS6|dGDYdrKs%gk3xBt*1p$%Pk43hk`$Vu zlWdGPq6<^72+hEEW7AaV^02lotv7cpa&+}& z|2wc_&f%eod1cMjniQC!)cSVC7o|V*+Kg7{=Ddz`UdOvjTx%yiStx_42Atc;7JEz{ zS)W#Mi7ZYR6}8o0tjy1a(f*o@?B~W2et>399AGcuKDlbU!0KQAy8;3IsfvkQ4}Csx zY4h1@WGgI zymh&(`+4b97n)q$fpmT z!;Cegb# zIf+SrI=Q@qRYtY3ug;7%4tr6epylr7Fv#5|ibKGJchZsR_qar1{1|tDdrbKCt-;Dd zqd4+eewo1+9)iDX>vu(_zR>F?-zyDudv7;~{cK#@YPY^djHKv931XT42i}d5kZPS9 z4@re^Pj@`?4o^4!wcU&(TJwupk^Sw4O%?$p=7u8}e{=G=!%})MGxzyvc+#y82`wuf z%f0OlOG)|;_e7KJ@Zb-cSNmpZnO9W%Uj3QpVSTp&E{Hp-GVSL2f{=&J1*H0f3;o8z zhN60qph9WQZ-+}ML%Y?K)d|-Z_DxqNP0wAJ3Co;NqD0olG$QL|z2m=M$U5I}U~SNSku(+1Te(JG|eF6r$-<9vy9$!t*DX}eLi#{J2aAm2ipm@sTYSDfaY>sM7k!}~3-W1!GRVpxLzW`_8 zltf;@+AV=73UQm3Qy|AFr$kLWj#xb^9M?G`$&NBKESk)5Z~b!C$?*y0Xuh#H8;n8~ zd-xo3nVO~|RjDo}@2@F7rlwJdgCbq<5TeFFUGM`@AGO7T6AXcvtgEO(Qg-(k9>$<= zF|Z)P)ISnd_M6;t3$yJeyNV_P=uN&9j#dR8y%<=;m!*1zlo^u@A#pVu%PI{ucBJF4fCfnOK7 z-Xq7yk2h0pbe@PA`)HKe@3#y7e!#+t+E&R*Z(c*reXM}jZ|-t;;&?5al7<5!#ZdM0 zWW)^RuR6=o56sujHG2;Cdt9E)b>YG30nJU0t1MwN+B-Z$YU2j@=9GS<@XvdBN-17=$RT5Wi3UG8K|yCM+j|2;byp1 zjM7-vLkozzuZL5-^byN(3DVvoj5*; zMC_=Yo{mS}<=Cb)-MbBCJw7ERe(QJbYK_Zpt@-ZtyyAa+;FMut!5aQOi@WjD~^=&pQmDo63j8#LY@oct#z|>;|4K^+1a#+ z5Clc49(&6=on7w?x~9^)+FJ)=Y%ff}&#zar*PdLVIU;D1lL=+1Mra+${&INNQ*0M7 z_DJ?TJXijG! zeo)fIgNfYh7(MxxoqrEj45_x-nDz&!S7CBxjm`frlbmHzkG5e@*+xmVUmK9 zi}J$BZun~qc5B>2op-xm3Q6KTq;mV7^Il9E6tzi9B}SPstPOgX$vnS!(>IkblJf zDSJ23x+Q@pq2(^ld&gJPRX?E7kWf#wV{LBIixr~Oq#R)F+x0IsITR-Wzp1}%^zBB#FH08;ESgHyuD$q6`KCHLOE6k79P+O^t zOyM3b7_8Iv!+>|DtIxx##)RtmCFUavm4ynpXNL~mml}+LyFJnKg#wUMZm8?`wwIv< zUIeB1$i^HJJ6p9H~ z4>_1Qc$hgfC}Kd0Vi{l8p6zM1g(I$;l(;Vp9F{~|cA(zu6ohd$L;9%`c2iA$ z>P|+G5>$Hk)l z+JDAGb5oBM`roQ-UdiB2AP>&&b!u?%lL`F3~bGY@*%5dFG`H&jrDW7cJeUf zVKL(#ta|kq3B8OW-Zzlb3X@3}^s$iB?Wx_(7+PSLEBNNVCvSiNMw`=8sql2J1;B7ZOEJ>?nV&Ci{)Z+ zG@0U2NGA`wv=4U9qBG_?5$~Vs^@G#3C{&4zfay`=@DSC$NquL(+U-sR6qWCKyq)b) zz$rUtz8Uqf)3iRopz$3pR6RL!3Y=sTuJ_JupBf#B6+aF8f)lQNthwlXT1RVo2jmoT`d)j?vVDxfZpt>dQK{}|_ zIvoYU5d~F~(KWayw~|T4{G2soof^jUO5?^m83jab_1c7IGkK|<%tuLORdvPURj;pJ zGWav$Rm|+ly^hpWQBnWkITuG-wXG1KM8!g1ns-G`zpHoLpmZQ8%kO+-Smm@HzB8NS zE|wH4lYJ$geQZxYA%5L$JxEi^OYC9x{N8~z{?z_!FXQB}O75LcfFNgM_^Wg&-Hy`e zhePT=u4BmogAd$G$&Zg8dhPMw9$Ulv4;v0>yVm}G;&n&4AObK<^(U*Vz229cC1cY` zKHh8mk0s)>V8#=(mSklvb&|T}dWiFWaTlQe3kUtu)^X7l6MAuZI8Wqy> zaI+o}x$wXxwj2{di2XGASG#dTICNE@Qs<%?ssTl;F@7IcGGarpz0C{VH=$!J>*`bK zZ(x!;)w5>$Nwn?F+-vY|8yCZ1YqhaHsrjhIyMK6g`76!{!rz{U^)Xs0r5Fh3-o3qS zt{?s9sl+_fH_dsn_#akaPaa(c0|@ZFxR&MamjRImas(}i-O=@HMPMIa-^K+#T53?T z^?$#t>>un+c{=g(EzLjR{~r6j+peREC;bI~{^vj4Uc8-Ud35vN$Y4;K z%NKO~uGxPjPC+aPcqVUTf5p2((-i@D`OUqy2J$^B5$b)r_dy!X!SR9yvZ;4OBg}XG z)u|Jn=Vj>v9Rb1S>E4xU7T^_cbALmL)ZDTk6q#?l@!^F(4YtDM$xt~yVmWG=y7#oa zp8lk&PRHM^6$w{(n6~}LsC@AzKm)EbMK z`+die#@Ev;Y*7(rx0Bgcy>gGBqW{En_ONT%8 zSnU8^oHQ%T4?I1LbxdPFIgREhch?LenkGj2QUZda8!y~VpQFy@5Lgm&ve`IOt}V>J zj_}}ukt+lVz5z|e$HvDIg=XN}JUZ+>vhI9_ZfBk8YKG%wmuK(Jc-9=)L^PmbNUyW` zGbJoShWXMDqi4y?ve0T6J5ujQVV}y({o&jDZkB<397uQSZ-aMl-~Jow9`$yF?Q3?4 zyDY~I5j~sn>?^P6dm|SfXcF}Ql^57YwiuObdukb57@FCa*d7bbp#K}GS@xs4mGBKW0YuJ_ap5SCT*c0=%UaBfWR&!h1LFU+@UPTR}sh?F` z5RAb-HdKoB@`qk8YpA&tN{_N#`_S2hHAsqoz+H zr~f~r0w3Oj(vpUZgT{G93XS=N01T9EzR}WEIyBR&Avo&mCSHizRJoGO6r_4S6^6?UE<4Ed%6Jzo{F}gGrXeV#)%i&bp)x=KI0r|>d?fspGYlu^ccyviDmuEh|euBK*TK}RPlF|jf( zBY~9TwA>&K#`-<@wIhZO!t`F!h^Wh_g=%%4f z!ED=^i2k+6pP>cYz;nABW-hn7DgbAPV|+?&+`6gS5$QarR#4Jc=7V>`LsOg*&~$<5 zO4N})mDl-dA@P2+=1pxMG4Zdv>(&}x4&fNvRZKSkgHN=^O?x~q7IA|x!~j_nb@r^= zvueV69P+t$?J$E60Z23H2vH za^T9A#b|KChd&;6KlS6bs!6|AOp<|AvMqh+knvpq0}>0zi);Jd$i&cpnCvE^KVu`w zUq@k3-`jIImV+1Jh|Rc26U@vm|!1=`Js3h9tM{(hqCn`<8-~>mka&Csi}B zU#X%;rpCta2)jqwZES^$`CKG5%l=i=hFi4nBh39s*_=?{;8(H=$H)`&f4Xvfy?AD2 zOIvkg++LzOTs8BNAqMGychYJ~CG1@FTH%WETI*Bs$TabOB_xujqyjK1d%|9muonI# z#OkFj-~!t$=Q~P;V0U~l2zD%~X5Ge*!4-$q{d>x%uASK?>QN;J?3uHdRmUM9)Lf0* z!7;Ai?X=Dt!2+p%nr8e7j4y()7A0gChxQ}{l^soj2UAFWfim5msEzmWqpL;?$m3@X~b#L)uJR!6&q= zBD(s@{-+^7FE=RNfpiCnee;& z{7-QY9&z2yt)fN>uyBCd+b#e=qN=)t=2?pM6l{Id-(z&mN350FUfrCY-KEMQsnf`eOCrjjx$c%TC$lNX0p2(bDu21N3z{($UeVnnIQ z!(e$?2?3xybp7wR)2`e!yKTv5P63_7+F37w zCy9_0qP8=4H^l`o!N-2UJOhqj8<)?0FJH$au&`krFYXZER!DYpq1V+nHefp@xq{ZC z0m)YAW)n7pUn&5o1rNhS?~i%VzTW7x;_}B(YMe5@Ik0pdvDeQO32K>kTYNS0gMNUi zt4^lCz|xCw0I&Tw-)&>#rntv_si&~ar?rF|-}eI{w|%0x)?m&ZVB zN<5>0>!w6d@zU9?YH^_57yuTeyxytW{P6_TDlZdTVb%vrJbkd9p4Q-_C}izoZ4Vc=Wi zDe^-jkOBaBDrta~!7H(+!!ljUX3TcoU!XKgWec=K(o(>NQhBxoe!jB(iP)l2HUz$A zjq?a%RNolQbHJ{tfGuL$y}QnKR=QP4>8M@UIu;gKx_sIrNTON)i!Yl!auHw0lpCB+KWEOV(m(YQCtWh~>zCJdzpU zwZ42BOUXkVh_qTM#l-D|%Im&IP_^&-wE8B1xXlu18@QaTKRD*AF?b~>rSIMcpU2Rd3-@u&uapMi*pOH^!w^&4B|d8#ct4{p49xnF5W&J(aYE=9<62+zK;6OjqI)a;;lN{sPOk%uH41ZUv3Od3n0^*xD8CL@EM~jAfztyc6SqX zx}s#V0peBIcG|;0F3f2$Q9ZpAfod4YW zKQO*wxeeIXT|~u!fl9Kp9L66U z>3c1WNNfHcH}U8LD?(v?A*tK|n61gn8#I&D00GQu~ zym~qH!7WYD$6WQW&ezUt93$<4>`t}f)VDx8 zKmkU53EF70O!i6f2sM1^HsP$|E~W{8;)1TBMBfG>_X7$+fjFQHF+;D>AreTc<{U>< zQofHJqz7cUcGU&e{S|#7NaA1>;*0{aNfyIdA3knU;hIwWeUEB_C7Pin2l&^z+6`y= zwn{~y1I}m+jdY@6zCb8W8~x?}!i1et1h-dxo?yS%@EO6q7y5w>qi?7yx@{CdB z;aZw8R#>$nNf-tD^)il54tM>=v!^3kRJRsyddO9Ox>Sl1R1qgmngDVSKsLP$lDOQO2Mi@ zMsC#L$;f0yF%Wj-=1k*Pa8_{9O6W!f&`gri2nNYVN@aDEIfdLq|0Im$_vcN~M3-b> zY-3LL44}{kT-e%M<@t`92rE7%q*S288Js^n;}ZppAUE1KIzqYmgKG7Tsi!e9n&5A; zisLP<6ghshP4{{54POj&tEW_Qj?W3y{N6h9)s^+kl19qLnVB2Lt%@KcKh!M!*;cOMB` z0kl(fG8OtQT(5a&rQNpTy1ue4ut@GKnWV_EUN2Mvjrkj$b%v;-q;Fo&^q+b$S)CaO zec8`r2)*ZWV7p29_GIMc)n5w-fQ=JHV5=WA5noQ`XCWrv>{zP?{o))StgYL+9M64i zJSxFDH(H)=+Lta4i@PVm%@^pm>1Y0S<^XA(o23`*>|RK4xdUct7LH2uYI|np4qwgB>-IBtLj0-9fU!MF!2UjwJBBkSCyb)nP;F&sY`i$ddWwM{sGpGOtz@js)tYBHlx3P22F7A z>5?$RlDN5t4B6tj3NwDUy-%Ey?_Y~4eTgV{8+r6pPaXhpJq(eqsps`jhEh~Hn%3Up zDj@qS`)IULw+T`V)qn;}$%>QE{#UU0zJ~_J5jBlu&OR6r0AB10z9>y|P5ne{)7PC< z@$(g>5VMON=6!eUEQQJFZ@Qgc=7cnrpPkI@rj~R@Mro9b2ehR^Q52j7P|01`p3W3T zs0vIneLo&LliE%H5qZnP@~vOEzWYeefK}&8+2s(3Hmr-20tTbpNeC)o8k;9?(xv*= zVkR3Y`~Kpr;70c)iR#(H{FDIQvvM)#PXdE&m3 zC#vzs`sJ~XFB^)at{5sMlJB2&2V3T_G9ePead@lDgjxuEu!k9xImpq7QAC=p;Tbjz z|MD!xi8%zf3P_s9j|pBq=O#blPehVvs|?OX*V~)He@FOp^Tm}rg&(@U8wQrkHaSH-oADnNOGcZW7b8LY;O`S6;koSabP~cidAnzag&snJNzl z8^|h|1D~y;83ASAuPV+3w@qyz?%9Uxex8_QE;SYu@J|hu?(GYc?G|)dE3?+QVTDX1 zVCMyZju~O|e|mfHcarZ>+so(E}{%u^v8ITMpr-6@_0C31LBDflYX= zzP|DmUrpXsT03SOsj>#_Zh1B*1r@|WSi#h#Q5-1lpflq<00q!)`pB9NAF5lKP#czn z-BoDDZA%P{Eve;F?Yt?D{v*WKqniG2%z*%rs#?pU z+hu|j6M!mY6(hO(34!e{nY!c2{c-_>SHJ65-D(-iegZ0Rj~_QV8LF$I&t~<9bn(0I z7({t993w>5u(MH)o{nXf*ij5BnVDbp(q+k&%!&OI3Wx+iRLzP#YF(WA-xBE-1(&h`Fics>Es}_fQhg$b6kwZ{gEeyKS`1?5b#$P?lpLoZAA3>ECGyspb}T){c9IEjxd|Rrbxj-W9Ye zC0d=nl98Khof-qW6_C3m%xb^cvQ!S;7qVPULZc0lx%6)=2j**+5G$&B1)iH!i7T7S z_Mxt-M$t1Bwsd=!fdvOPX$Sq|xRsdyt@;kAv1%>6lR(;cIoHq0FX8_^ZaMMBHA%!+ z?O%*r{CSXLWHf<2Be1SapM+6Yz~i!@DellIIl9-HNGCpzj!|!3s1s-@Q$}6SV4P-Q zTS5bcvU&w7%F0IX-t@>o;~danRX(||l4_2!?7Kby8Q?;)_9dEAd*FK5#pUmTo$U$< ziWvTBojvq(Wk@7!BIk-ytc7J?$jLrU$NI{_q`XE)UEeWxxKIreEqS){M$q)_z`jz zVVr@dR;#Ls`%U~@2lM&MC03Tl2<_2iyzOP(b+m_DSyrS zT`CJ8X+^0VPZp6?q*6Ib4sH<&)9x&vKK&w`tB`M7EI-Q3FR7~S?&+NZh0FDRgc!K!EL9XMeS z9MHuOsg}Q300Ra@9?jwFkz7$nO$HD9#Ykt)b{wAZ0SPkr8##CN{IMEp%9Dz%8}yCn ztnvEZm({t8*X-~$5Gi1$!#SOE58b~Ngn(j`(C#95!${vm%d`MhgwFQ#yyZ*~DKa^r z=g05GHf(s=OvOKDB1r)8N$uXIyww(GpVS_Mx*3uz*sW!QAhMXuWo-}A5ixhOxHJWT3owO1@$4~Ky`=b99KmB{aLN~F zy(g?l5ebx#$Rf4rziz*OA!#E*fV76v56B_^kQt;&h{r=lX^_+3A|6YJUcg8YIps20 z+3DK1ZutI_FnenrC$&-lZEQHozBsq=GHM;uUMoprGie!lDiFSC#ug83bx{(Fhr|2f z1CuE3cxOUvoY-cQn>u<%N^Jqn17t#-LW+>9> zi2aRFSa#L7lF2W^I({B=hN}!s&E0fmx7buzKfwxqcEkM`evnqF3-VPQ?xNaCcyYF& z#OD%~MNG-%6BBefq%cfL--Ns7<)Lv9!x-pUowEw{Mk$l$6`T)<7c05x5kS-Op3&>- z^TktlUnkp) z$JB724ZIPX*PdwGW+4%g$rE6r8TI)q9MeZbXvIKi6>=d9QkG53a8^*0GUtwqy`}%N}~gT-5oHX z!(TEMaT!Dhk4=>NU?xg#B-0SzSLN>Dx7~f>%l4Ko5Co-imu4U)fv0A01}pnvc| z1>8mK(b5JsA>6d5Cn$A31R6T47?sp025+3(N|$WBtvOGuo(81|RI#_0NS>|?g&#dX zWGhi+=(T1}S_1gJ>9(d`L9^jtx9MP}{s9A^`~Dvp?xG<|TH=fHkC$q`>gaaRFWv2` z-)bK|k0F?T4xoMCARv8col*lO8QzVj-ahF~v*>&C=Q>u0pRAMdD@e%y3cHV9SWkL~ zFWM%jHD-Le{c(pUw82SK>!vm3zoH`SxCs*NyIgxVhj>0-gBze~b2Rg0m<8B6z(0xu zSt~A3w7m}t)ELB(n`C5aj*xA*oasfodc6z7B-6qqm+my^Yt?|uLs%w;)n5rjXjUKC zyduv4LCErk(Y4&P$vWOUkGmrPlxY*)a^Cx1%)M)38MPI9VqPi&RIB}0sO+K%5 z&CpL5K@N>C687+J$U9MdkPo#c3CJ)nGnmaC;Hz*{(vF;!)2rE1{s=whQjZ&D#wq~? zr=yqD1LUL0-}jer|2@eTVse~IOd-O|G3j+oGe0m&68P+Z&nvDgweof-WZruaS;z={ zjKu=#$&kqF{P%d3w0UQIM#1W$Gej>p!@4S1jR9@Jv1I&LHsN0GY4WkgX~kddY#`9F zEToXvHFqCGoAtUb+3|z%dUqbpE;zLYjn;=jJ+`l%whL&OgnoS*q)u&L?wG%mMA{FR z?JlCxTQrrZIkH~E1@g%b)@l0%|v+jZN>-Cr2tIVldt+H3NW z=v%D1o3ia)aQdepq{|rE>3F_ZafB@BcJwFNT-uH4RdQ2Q^*)YpDaLM|hS3WDH~r}` zr{#{;$)Ez69>ymVB-Yz?Lko=mfVsx<5bbP6PGjYliyf2>pyFm?|72hhK5n%+0tB@n zG&#Q0?}xM~NB}}cK_6b*n1M3e)>eNQ=M+{b7#M>K`)1ZCs*ZOtE$tJD@ zGCZ8{TKt!(HiA!r(Y1eFoq{?PtKyKNKPGq07ky1%?`K_7YK?a=r^e0u{RPTCLQK#b zFZzU9z8w6`Aw=2Ye0x&Q7J68yIwc)m^V4ADxD|xP=KZ9@l^^}4UjpdLg@fZazREn)C?r6fbh8 zNp50oiB)Yf2cjKJQB>N`0BOaqHqqtKK?N_-p>RyCRECIe^+89y8g;=EH(+50X8+<7 zH@9z25-2%X9*2XSKu_{kvi8Nd5e699=ZoJht?6*r6dIDow~XZnHgZ$J0y`V8BKRt$ zw1T;Yyor=eX11k3Z9%WV)4s5?65*hY*y!G@jZe>^v7Dfk#pyWIk^jhR0u<$Rpl<^8 zNu5V7-cvKXb|<0ueYa>keoxzlR8suvs}1}Zq#}WUld}B@GbF_bRbt2F_3s$z^OOVqssCle^3Qcloc-j}Yr~J@=HuEx@WIhj!|J3m0;@7p`(< z=a9+z2YO8`{IUPJ6CD$n`I?1^j-ly}GqME&5Sv$kz3Fk_;leewiTXvo8m-9`f*FW$ zouuK+wB3CgDHKth_zC20dQciV_SD?R(?NwrSmk`W6#E;;J*c6**2Q7}?u@>Q{t-VP zB`xCeR{dc>A-a0ZC$#BM8BCZk~WzejsFY5Ee&7$? zojtN)FH)XF(=2rv^!n_0_MP{rbVdvCI{YhdHXep0oJ+46^qYB1+7qmK0PU`$|XrgUXMJ!dWT zSk8Czo#Djd0OsO&Me-(q1^{p8@Ohyl%H=8E@+nBI!25g1tt>{o|9m~U$S*ujDl`54 zt(e#A!89bKf-FuWJe02Loch`eC`tkENZz==+mHXBOX+{X+_5#4kJoMuvi!Kn!vplaQ(Dtlg?HFE?r~) ziYT{+q)Gf|Xx~P@`yqq>8fTdd-H$;kBFAxsb2Prq3f?3Old(JAl|}HTGgcH7BDvuM zB6K|faA51y%FwazGVEBRyy*Cg9|H~yn9Ldnh$H0>q=|f8lcEOG5Baa6Kp76$>_zkS zmDFysikFFVfL6sJ!20ET_};ziI@xH1CQ4x$W}*=fwj59)Uo5@>KAccvyC~^)(Mse4 zJyc1z$9}l>@%`5D_;6++r2^5GB`#iE@jO|KPL~*RaJvf2f%Ugt1IpR0nXVSP2%X+z zH3@}u0E|$gQr?c1<(nRNmhR~F+w=t&9M@4(!MY6C39yk|PqeV$e|uJem^FfI)5t6< z^tI`_L#WIp$0V^h7!}KJXhXLoKGN>9%j2kS3oBb~dE)20#3gAeL4~5oY;RtQh; z^vGRSe}Sn4Xt=u=vyXP9Sv7khw~YZ+tW<3yI}qN>DWvDrqYNJa-nI4RE^NaNQGc^S zB1*@R3rY}sdOzJ7#eUC!8oXwKk}%uzx$RGfC;;%*aT4Baf{YtLFvRya$|HeHenWwM zf_lto89}1GsyB^B72iRMaP?nOYn9-|Cd;AYWYorGY4PdKu*G)@C-@_f*XM3N;1)_%s|n(<#2Wb!dqfayoD|NyG{yHmb>s3^Zv=BTbV4qUa|c?=8!x7L^i@ zKdaE8GH#v2%)EvP!tSoxH>cJbSoG((3rl5XJ-d3;7N`FZ=FV1Gj19E}mD4bsI&%gU zB#{&eR90r|#bAZfLt|R-;hJ*mfT<2nRSZXx1nA-sui@E3?^o|+nQM=*vSx07WPm|` zOH2%hdR@QcwmoeTVouZs`T#Z8twrU?`q93LxfadW8eDx%$t_MvyTz81K*3tJS7XqU zR#Hq-geh9qO@N{pRU;^rn!5};8&7W8*pbyptum9~_x)UH$VLF1F#Q%EiXvs!%GtFFD5{Tw`h@6{s_u_CXk*<1e?a zGyOo_DRTPL4YEtLJyLcUhNu)pB#^x*>V)KfWq~TibTYHC4ShiN>gnNOOCz*D_8ed? z=NvDM-I^;(cd7uWKEMzpbwB$Fjkmp@9U1!#YFn*n6A89us77{gjRXk+1b@SN(FvHE zU<;wB*70GLPD|sbB%o-nf&oSDRb}w}n6Ca+!XaZQE!w-GaZa`&kjJ}USeD*oAJ_jj zVQ-w%_Nc4ElcjP=2?b#wu=3SUbLtpE8pH@%wSY8UoPeuYofWL4AW=NZ^ zzI(qwi<|x|%&x0j&TX`-&CGqUTiKvfObpQlvg;;#!1xkW& z24~#H*tZC-H<=D?T$S$ts0R$e#K@c3(RAfKo+14e=f1-cKAv zM^zhboi^^DS5U2N03nfA)68U9ksxB6RE!#L^#7{vO5>sK_P7#4WodYBwk$=FtdS)i z%-Cg*u@ge%u|<}IELjty5VDmRJHudX5lPY{q6{fyY3yMl_cuQGdG)-!_syNpyqWW# zIdlH=KXc}HzT0%;=WtgW9;moJbD0_V86gJZ!zub(TFU($p6wG0{ZmL!B@FfA-A zCUy0F^X<ETD78?Y~5U^)JIOlhbX2f`Sxjhr^?8w~Cc z05BG22e>Fu)z7ezLr0RMlKL&+X^-*Sf+`qs#JvU{{HU+CB#D0*Y${*?O^U7Hz$_P% zdy21xjjt-ctThEYI)Jo|>HSwN_?mI`dnTCO*InzN{Sd7F)=_5mqC&=$cpYu(>oxlq zJ@_9{3?6>(TGq}n3aqdA{RVl)yi*z_D|O5qNDE-zj5ogm?5-MiB2o5l zT$1$iafidALYTz9;ph+5lLFj6fMbr2eFP!kg|?FQ`KT=@jG7v1E6u~AjW(N+f}mNn z)4A21D--C)tfyF4myZh-j?K=<{FRy$o7ex;W#&rA!D3dBl@+$GWgk6Kx_v8V2FE$V zCk$pF?brRg?E{5Bo1}7cz}#^u(cn#=*ci{PLVS62YA$E}cT$?%!02BEC3o$6#X>T- zUR4N4xr>nl`*f_U0iR5_4*3PUcrfrvh<<@JsgC@oS-G59uXp|BJFJQ=W8Th_H?A$Y zWX+e-+T^$<`SfhdXl`V+DiTXKm4z;qpA`yz#J%vLy0gAEwsI_lQFTNI--4^g+>5Uv zei-)))i_302(z%)x;p%b1k(GVVo?r`)AUjK*!2L$5hDw+puTpn%1~l>hKNQ#00p0r zv}iVH0MBH^U6|{KD9UnxeWA8^%*Q$!XeEr(;R_Z1YL8~ zEwi@d4paK69jITtS-8G7Eb>=kJBNuE{f8w5bx&XYoyP}k%F*?SE2j|~-v>SYAYZ^9 zLLEFt7FDBIJTLki*lYP|SIVi>&ym2N1H?e1fsF7}W(7qU$~rE6LhgujtHK8tqW;ob zDfs$KmJrN=oUx0%5*_c1kSO%re1$?d{mG9ZGr5?|jxDwGeCKPji!{nY0eQJW49_o( zH?g?ZT+XZo(Hi+m>TY1QZlW~?x7EUe8y{Nc#02xtC6b4c;jG+?hwdfM{e5nXRhC`7 zh2jX6uc>Yr~Ad*dnon4kelr`++J zr%B%o zd_;QxhlWaAue*6D2_3#Hdb{i|s4V=#C?<)Gpu>xevB%xa8|mtEHn`Ie=*9dSVYD6s zNPnIm9#EN6>~l5lQOi->Os`o$lhU%HbkRXcy`L)a3j+Ew1iCpVAjzNT}kMmoNT*IO8|;&LsT72V+V zL8utcv^x*}%SX0kl)4x3QuUx4E_U4`)+(Rih%EJ3vKeBE9>J{8#p~YhoW`V~A7H7H zH9(_UDykZfh)fcqD&0yg!aMJ#vJl#Mx$09n1U?y-bvezuiQdjNTRY38X<)84nJ6_> z?qYx?6ITlFHob6?7S|@5zVa-{e+u`YHrY)7cs>CoGkX-PIz=)5r2K=8!*qzFSGIWA zyk~#g3HCnun_D8g6&KHy_kFrNrgQ&TJkQYV= zVkdCwGz2eEAJfo`{X_fi?-c1VL8MwwXeJ*UjK;S*Etp>>y6DGbW&B z3F?Yc5j8arw9TG*)9$DAEl06IK~mRBuO=dFWNiFp?fPCC*np_73EB#6jn@?q7qS-c zcRC0`Z1GGHovOhX4?*V?3Z=UnRYeUcr=d}0j`-8a#-^yU((u>w12fip zq=@+V`22iFG+H60CrUh)`lMx{RNZ3e7mNKoIC!5V&-iWoSU9bYj?Syz-uoR6Gt<*6 z+o5s$S7|a&Qxvnhz0=a7OdsX$?7WpEcIeTP5uK)%mbHckp{3<woYK+v02S?c!n>6Vt3HZ?V^tLP&;HWML=j$Xr-dfROt*&kH9Dg*Y%{$>8BE8@SP za{dQw(EocEtm^ul38&fbh2NB+UJ{xu_qg99t%R>~M`(=^A41P;A72X3jQL`j5%)zh znzoYvK*YD)NPf%l)eDKPu2!FMgydwHr!PE1#BVg6o32*T0_yFKBj17_+Gci&e3LM) zwFwOeDjJ%b-xQZ*+79%@y*vlgx(!bvv;FW@$;xzgb=B;eZ9>(p%>`My26FR)8|=0o z^3zX>Wghvbk78qUsqPYCGdHumo-k}>UFVsU2kC=5XxEviYm2XK`t{9G$l#^-vV@0f vuC3(Co_BAcdy#v+3kWvzT{~LA_p)IJvUDUAwb!)vSwJ1sWn_iAL*%~!BgtB) literal 0 HcmV?d00001 diff --git a/.github/pr-screenshots/version-component/lsu-version-devnet.png b/.github/pr-screenshots/version-component/lsu-version-devnet.png new file mode 100644 index 0000000000000000000000000000000000000000..50fcd261f6723c14689fb1c8e6cff446d6b55f52 GIT binary patch literal 39156 zcmdqJRa9I-w>6p&fh4#G4Q>H~2X}XO2<{NvAq01AT!Op1hv4pR!6CReev9v%|2~~D z{&61e%jKoJcXw}g)vj7=&bj95U^y94g!ee_U%YsMATB1P@Ztqb<%<_D_2FQ^5$jtl z;}n^Q)?6%l8|i zKL5Ahx)Ps|?HagL5K<&^cTFu&;a>Y8gHOYEN(|D7lV;Hg?mMfZf)BoEmvI$_$Wczr zPLm_Uy^a>^Dk%|xmC-Oszl`HP{R_eMG)D$A^2ZM+4dM~T)21=dMT>rxe%Ie zkIRsrKkbE!(8Q54Om+r^VZpg{R(<A7<%MUc7ijr|x+Ti-eEMrq^WY=E`2}+@4v7D4i#hu`|)2 zK8cAx!NhpVE1k%E&i7Zof5>0Bdu4cmjEt;UCD7Zqbn%+ttII*};JbIN93E3$0R{5h zQW=eZ)yDR8Tjc!4mTq2(Mx-+{F|jZ+28D&_+>Z{##bw|kX}8&ttWV?KUzV#AgQ*Md zL(p9M(>*9mEU#x>6@lp6UxLkR))O=ytJCf>S0Q3M&LPLTNYZFPB&`up8j$(GMXNm54FTkR$FMG)oxSqnB*r#1y5$i zyL)Fc`!h*;DWsAcO;(Bg#`c)7nyzsu>FhVQ)6mF=m2~0)o%h|Z3B$3u`{#x-l~c+p zD^J%WS6dv*Es(tNUrDaU;~y=1`%#Rfwwf*nl)`0p<)DACm@O#SE#tmNkUo5i_)%M3 zovdu-46>i5m9jABet^WqVS84R){N9=b=mkKGlGtX^@_lL=c#k+@hN`bD(x=0Zugt@ z7Nhl_i_|49E_wO=xLKj9?6$=ME~ImvXwh zqXywJX;f`A)SAi3@<)=Z=l(3PFwt-_P<78_iYqJE#zg$l^xNTw|JAfE(1msGojE=M!mQA(pS`9 zyX|PXB+b8ee`3pG%LxwLW+R-hTuqP>R=&6dH?i&P_?Z6JA>tNvQcluL9@qJ z4_N)h#p-ZGn8kSwIZ9fVj*gD%?24}P!v5X+Y}Uu~+51V8qJ4&EzljV^F0klz5eQi_ z4Fa8H36}7ff35!L$R;7lMiJPOBKPXSc>nt5jX$Rop<2uLk#y}8Uav5X8pAh_^F}l? zY1~*WZVOJOd>K2m8EQuKRIQLPgm;-Vw?ZYYJV{E*?(-Wo0r6)(t1$LSnM`&zV@%yLczeY#s(4Qdsx=j(#r*WJ13Rf`X*<6h95y4l ziOfJC$}Z{6*91joIOia~X2{O6w%VT4rGo%f((y&RUJo}w&nNI_OG+&o7H);5bo)z^ zICOu##LA@3+wjHHiy&1SG3M6$p91imZkPCs79;w$@;f7ec{zD{*sO-ohBu+{df1p) z*ZxA2?jKKaMk~N#RJ}HK2^_1Hwpl4E)e$!W4$e!6Pxoo}{CJuy zG-<#{<0n8QxVo+|$HLXxlx$?S;dJCt5Hmwn9=sG0v$z(MQ`E6>ib#N{pwmj!+3R>T zgCuKG%?|Gw8cLLKS}#+^(_uotUVgg3n1mt0A(1ND(&hmF`E<6&7!fQ3jM?g}tg2rX zaNZBQr%bfVA|PStdKS-E#%W}owM~CZv}@G5m(_NM%4Rgac=h5(yN0!w?W;(%sQ%55 zljM2io^38ieu#q2PrswV!Y{WWdUb#IB?&^HQ#xZc7oQxTnV%nue2ae5n3ZL>^$+13 z^YxG>^7plMBc6bl`}fr4aN%}s@7B$Yj!wqT!f2&$ zsAu85_i|PveYnUS9)4_MoPzc+D!qoF?@E#KxomVs`(j`fi~NMV9j8`|5(_2zz(pb2 zM|i8PX|(H{WSrsod3g_8devo4iICWAUubQ7ys^IiM1VABk8~oBRnL7g4r^qu>IMH6 z#QA$gzCxky-B|Xo3ORZ97cWj`p;YG^Q`6IKmj_P&x-yyaBM#xib$*1 zt{tZL910^-l9F>sMP#sfIY6edS*?SPv8Ahv2KqczS5|6OTB4+tjTqa*z5clw$AA+~ zU9YlEFG5ZI{;Aky@6S59sl9YZmdx<$_w3w2j zBHB}MSy{w&e%1_CQE<$E){0?qCZ%?jTTC@QMy*E45kA?pf_QeXG(NL~rL}c>WTfhE z-g5|j=PfuVBV$y$5Gu2xu zur*L6j>i6|?C#pT_8kq)qJ60#zc@B2se5Nuhbk{GcY_`sBey{NHB3i!aPJ*b^m?50 zF>ibV)BXfSIBv5XWt_>V?q3_p!GSgp@wgNw5~k4plHa-%@OPRm5t4(Cg42?sO73^4Teh+{sw90>(_@i?Rq^OW52n4dR%A3mI zE-xj8moWHn&u+Y(Dm?7r85RzYBH#;qv$KO0hQqnF(OYnkx`dWL^7gYPx6zr}d}zfF zBZ~#cf68h~L&o+i-a$&Ls*@8_mMbNN!Ik4B?4g4L1Fl>vyppPS%oY@=!C+P0UhOeB z^Ya0i<;re%*TEkmXwrSRYj##yFIs|ph0!iT0$c~$Wrv(YZx;8N2}#WU4%@z29woH zo`*n28tVU^QZSCB!v4HcPDO=DkgVRnYbCCKEiH}kR*;jNmB8D4rU_vYSpb^&GdBBS zXZI^+v4~w*=6|g|*lB~GqZtNT%PGN6ZwTHCz-hO;t^DR|cikVsfv=u9Z2E}3yV~IN za`brp0J_-`esHkFitjcz=We;sVz2%?tF}0yKfdLAhb4*ND|;F&Zj$|98~OC9+%nnY z%*?y>)_z{%VpSEklQY#WCnxC`Y~(mg#kWmaSJv^JP&av~=yf2s5CH=f6WQ21Thw6m2AkfPAIb}E+tMwX*N2meTryu=CmQa5!UVJlOG%|Ji9EP$0q9B3 z*EdYh%EVwgCvfB8C1aiL?@Gd`KEf2;phZ`mh02>vDX*@s+-aPGjVqp8t;WJ~fFt;7 zj{__K6u8&4w8H=xF4mc~>dzB%;b&0LyT>Rh#GwMf1rmA8^<#VJ=nfj(>lPXz;%MLM z>n#83d|AlTlmKRN!065fl1mhIPF0bFuBnq3Q=cp=S^0gO zoHG#Wv7jF^1{eE=l&%&X+Q%cTaN%AH^wN2z)E=B{?uEiSmk-DkzaEnZpIm&1bBBHA zSk4#{ zAPAFR79K3!%Vum?mJH$6JYJqKP}jAz{OOZ>qJWeathEya4i1kD&q8iGwn`4T-a|g$ zk^J#~kC=d)5cNmTzNVJt-RnQcWrzZBxhBS;Lc~o?O<(;7w~ThS8ER_1BoX%8P-ZIT z#i>3valoUBule&Uv(OMRK%~gW_x^>PeW58rjh&pDGIhL}mcZD=!u;SbAnc!SVr<{Y z1pOr3JZobZiXltpUSjgBp^fLn_(hlyOf_S(YrtMM32GWDI>SY4r#H!$_pK^ac!+GAY#9={3S>@B#=^>G?24M(q7(Z^^Pz0BM_eU( z_Le1|y>i^(hzK$=AhG$KV~+_3eJ@m%wX+9o$iO21kYLlJdw%1A8ZAZ|jVzG1P@Br` zdU48>`S#W=wigj{I~A&We9YsqvQmCiz64jc>@`=E#6|$C)#Rian7OsRei9p>3no%W z!)=DQxPBR)og6|?VZ4}XwxI!an`x!&N4yVD#87TVd@bBdHess7nqpwA&ulTU+fyb} z1euWwM}03`ja5FaXG%EVEWfd@&cs4u(LX?oC3~c3r$$dx?t=5^#n;pX`pKGMUb|SMd_E;)6?7cV9x4J2%dUhow|uhsGx%h(AAs zN~&1RX=`c75XAK(%4vF_2=@5wtMl_^)_aOmWR43XG6zX8hwi7h|aAfQj=$}u`BwMqYhPS+-K`lWqW z@HJszyUWAl?<*Dwp2WDAbXB>jmGZ`ejPzEI<|otd^$}JV$`8}({eM2Z4>6(F!L>7Q z4_NeuD@-9Z!d1U<@HYdi&^8h zp)ze|(*i-_`;t|!ys?ahw~4D#EkI z3n)f)l39$TmU$HvG@Q<~61_9Z+Kqf$oc25RoikvZOPN?$!(_#DD!meN8`Tx*o%^}y zbz0kPcg7zNi%V&TKZHs=s<$3490vN{UPcX_Gv8kZ_9deEXkK1ANJJ(H0Lo>OOOLGb`rf$HPUYgTvp-K? zy%jZc3Q*Cey62-TBGX$H6tfX==U|T;L`R9!+dZ1Sx?%j}#LaFxepR2o>&J0$yB@KE zy*wsz{Jweqrgzk@&6Ti!=R>kvqio6-7(&G1p^;W(r*r!utbn?iUys}z^)}%vba;H(K4PRFW9@7o-_)>n~-JXg-DnkZLqsF z@Focfz#a0US{mzjZGS%*Kq8z{JtDZg5}XQejzo){#7RmHBbd=WbD>`R?l+b{YHLEL z1Fm3F&lF*IvDLXA(Iv3Om2iHgT(}Rihyj7%FVx}j+99WBsLNxZxo1J)*~S*xt7_;0tw}-AG|NiN?QI5b~+B7ynK7xG%yg>g=NAvYowTOZ=G!)18xwzw%?~L<$v^k)T`%`a;;$l@REDx`4n8@+C9ml)ouphlCbM?_~n_WLegI5;8; z2oaADcc0F*QrIP^iC%Jl?-$NhNW-&C7)ojKco?y$CzQeG#cQ7>X*M~WBkUTRK}GuD zDK52Kb$8NcRg5g~8b)uS3&kBV{o?F9#J!!*$s7JXVyn~sO99iNDgWxcFthE+*Q3G5 zEJj-xaG4D6K2U^zT&QzoYQ!aN6Gg%uySwtu-}}g(nSULMMWNgf98DxZNy4<_F&92n zGXyfq2V-gERo__mlBl1@b*^uO%Ve$;dys4l&BN$DClWKEl!%eNDa`JBAY_98MaUiM z@<2DyIZSnM%l*Wo4STUit~uI7_zT@}YIQAth{5BWE=G)$E{St~e%#vm@9ED!`hLiP zgT)0Uf0!(n?Xih!T!+{DHv;^Z8?LuKbClj;{jv563(;nFp9tx$W~{a!)oKaJpqjN@ zDb6mfb=zBN~xB*Q48f z`FAgr4UWi1uE9+7o2~d>)_kl8{6F^t2Qhv<2HoGHaNVBbE0w%pTh88Moa0-Ts#-5; zD`-R@Q`1pt);qTQw5@>U+O|T_E2FJcV=j}1WN%lY-t15o4(aZ}hpo0h$8apMgk8|k zYg$N4;u2Vo$(ZW@;8{4n!nn zUXgCEps;N_SGdf+(bI*6WDa;*kX%6wC{+4)Cd|ZHXY~;s?~L@GML>)c9Rg8JZFVr| zifS_ug^$v@2%SCl{V8Z7i%Wxn{0%!^SIv+N#YJ5+d1o6#VoQ7!K#}QpTu#O_SuC8_ zuv=K@dtYjDGsUCcn8EtOx64G>wODeYm$K%yOP* zl!lU-jR|8EX>4X;{*4Lh!JIB{ukX+io&T2%dH+MQiO?#4e5pJt$IZs+6`%5-Yq3f0) zEC97`bwz&zEqeoXM}}}VFSp#1d*AVg!j!ysUYt3u9GR4HsLPAacIM+4|#nAbEZx&3oXNcNA(i0<*yRfLH&ddn;tVP|P6g+;= zZ6S&XI8Z}_zeFJ;brJXx-e&k1V(c`D!%nKUH z!Tn~ssERW93lX}w@|1B1i-=*kEI~q~I`GZ4#`8-(bP;ew7Br#bikMv#q#OJ7h4rvJ zSHJQ^G^^|+*{cQq5twVZsXVP{qgz=XK4>sI*>=s2pYVIqX*b8FCv9wgqj6TQV=*V6 zr-bjM(`jR|xpe^{3Q2ue&VesT$zW=G;9|t1gQp-;?lg_u7`#Or9 zjUF4;UV5jgW(G$48L^sQEKYHJ_{Ivgi!)!j^;;R>Pw)S}T%Pz$J4ENV+;yxoxLmEl za?OM7zrYykZS6Sh0|JhC|EG zWW_#&l808b{=_Jc`Gd2^RP&$Qo%iR8HDL?uuyJ<9F?BS0gy0Z%ClNB%^Df4%ix0W=SqmpLkBDRnpao&QHUR z(iTHj>k_`oQkpm9y?uDxz)DhQXLo%QOl4N4D=5jtWN_L-%ZWR<3@gFA&vVfbQ8B<0wPj^9aTjLr*~Fu9X3H-~bRom1=^pGX z4Hy<5?4zTjs;;j+JGI1f+hP@XlxH}F7SgbA0~(3g=7KS*3#4~A|2O{K*a5Z;OCVAT zx7-9h1&?AG?qL3HPK5{`x|FBYl6eWlguKIE(7=F9+okyG%ADT(1PID_XEWc(P!C&W zxTxdlVp%yUR`vJV_f{@*n_mUvrU21^u|qi^%}$%dvHeWsks6J9s*5UZF?%613Fv@T zmbyoL!@gp_k~B~iMNC+^x#s^rUH~loyYA&_209|wxnDd`%>A|P&u!{Q(_M#id&o1h z#;lA?(VuBqc}{N+1JgKb;!|NM0=#{H46g+#&RIsheMs4hg61ltIVXIK6(RClxMR_+ z^x9bt9L<-;CaS;5AJr8XlUZzaZCu(zxmMoyjz8vgQ}v7lz3IAl3=q`Y_Oc;q{$deiu<#Vk%2V|9*%Us&?9q| zoA1HMYoPVj&n_v#M)%powa1j%&za+=}G~{JOrZG)^-)uu25$EKSSPs zNLJRGxr2qKeid�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 E0kEGV#sB~S literal 0 HcmV?d00001 diff --git a/config/repo-version-config.json b/config/repo-version-config.json index 41ac65b5..5b5d8ec3 100644 --- a/config/repo-version-config.json +++ b/config/repo-version-config.json @@ -33,13 +33,13 @@ "name": "DevNet", "advanced": { "minProtocolVersion": "6", - "migrationId": "4", + "migrationId": "1", "darVersions": [ { "name": "splice-amulet", "version": "0.1.15" }, { "name": "splice-wallet", "version": "0.1.15" }, { "name": "splice-dso-governance", "version": "0.1.21" } ], - "releaseUrl": "https://github.com/hyperledger-labs/splice/releases/tag/v0.5.12" + "releaseUrl": "https://github.com/canton-network/splice/releases/tag/0.6.3" }, "endpoint": "scan.sv-1.dev.global.canton.network.sync.global" } @@ -55,7 +55,7 @@ }, "devnet": { "branch": "main", - "externalVersion": "0.5.12", + "externalVersion": "0.6.3", "folderPathRepo": "splice-wallet-kernel" }, "testnet": { diff --git a/docs-main/global-synchronizer/production-operations/logical-synchronizer-upgrade.mdx b/docs-main/global-synchronizer/production-operations/logical-synchronizer-upgrade.mdx index 2fa36bce..9772d706 100644 --- a/docs-main/global-synchronizer/production-operations/logical-synchronizer-upgrade.mdx +++ b/docs-main/global-synchronizer/production-operations/logical-synchronizer-upgrade.mdx @@ -4,6 +4,7 @@ description: "Upgrade the protocol version of a Global Synchronizer with very li --- import { Version, VersionOption } from '/snippets/components/version.mdx'; +import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; {/* COPIED_START source="splice:docs/src/sv_operator/sv_logical_synchronizer_upgrade.rst" hash="0cf8ccb8" */} @@ -105,10 +106,10 @@ Concretely, the procedure is as follows: - + ```yaml - name: ADDITIONAL_CONFIG_SEQUENCER_LSU_SEQUENCING_BOUNDS @@ -118,7 +119,7 @@ Concretely, the procedure is as follows: ``` - + ```yaml - name: ADDITIONAL_CONFIG_SEQUENCER_LSU_SEQUENCING_BOUNDS diff --git a/docs-main/snippets/generated/version-dashboard-data.mdx b/docs-main/snippets/generated/version-dashboard-data.mdx index ca4fc537..9ac5c54c 100644 --- a/docs-main/snippets/generated/version-dashboard-data.mdx +++ b/docs-main/snippets/generated/version-dashboard-data.mdx @@ -53,7 +53,7 @@ export const networkData = { color: '#a78bfa', resetDate: '~March 2026', versions: { - splice: '0.5.12', + splice: '0.6.3', damlSdk: '3.4.11', pqs: '3.4.1', tokenStandard: '1.0.0', @@ -62,13 +62,13 @@ export const networkData = { }, advanced: { minProtocolVersion: '6', - migrationId: '4', + migrationId: '1', darVersions: [ { name: 'splice-amulet', version: '0.1.15' }, { name: 'splice-wallet', version: '0.1.15' }, { name: 'splice-dso-governance', version: '0.1.21' }, ], - releaseUrl: 'https://github.com/hyperledger-labs/splice/releases/tag/v0.5.12', + releaseUrl: 'https://github.com/canton-network/splice/releases/tag/0.6.3', }, endpoint: 'scan.sv-1.dev.global.canton.network.sync.global', }, diff --git a/scripts/helpers/updateVersionDashboardData.js b/scripts/helpers/updateVersionDashboardData.js index 2b49964e..bb1d7bc6 100644 --- a/scripts/helpers/updateVersionDashboardData.js +++ b/scripts/helpers/updateVersionDashboardData.js @@ -13,7 +13,7 @@ const path = require('path'); const PROJECT_ROOT = path.join(__dirname, '../..'); const REPO_VERSION_CONFIG_PATH = path.join(PROJECT_ROOT, 'config/repo-version-config.json'); const VERSION_DASHBOARD_META_PATH = path.join(PROJECT_ROOT, 'config/version-dashboard-meta.json'); -const OUTPUT_PATH = path.join(PROJECT_ROOT, 'snippets/generated/version-dashboard-data.mdx'); +const OUTPUT_PATH = path.join(PROJECT_ROOT, 'docs-main/snippets/generated/version-dashboard-data.mdx'); /** * Format helper for MDX output From 2af288b1089c3d8d1a2e790f9ef0aba56284ac0a Mon Sep 17 00:00:00 2001 From: danielporterda Date: Mon, 11 May 2026 16:55:38 -0400 Subject: [PATCH 03/15] Resolve version tabs from network data --- .../lsu-version-cn-0.6.2.png | Bin 39016 -> 0 bytes .../version-component/lsu-version-devnet.png | Bin 39156 -> 38846 bytes .../lsu-version-mainnet-testnet.png | Bin 0 -> 38708 bytes config/repo-version-config.json | 12 ++-- .../logical-synchronizer-upgrade.mdx | 10 ++-- docs-main/snippets/components/version.mdx | 55 +++++++++++++----- .../generated/version-dashboard-data.mdx | 12 ++-- 7 files changed, 57 insertions(+), 32 deletions(-) delete mode 100644 .github/pr-screenshots/version-component/lsu-version-cn-0.6.2.png create mode 100644 .github/pr-screenshots/version-component/lsu-version-mainnet-testnet.png diff --git a/.github/pr-screenshots/version-component/lsu-version-cn-0.6.2.png b/.github/pr-screenshots/version-component/lsu-version-cn-0.6.2.png deleted file mode 100644 index 12ec2ccc4ecb9286c98486c4fcfb19ba7b351b79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39016 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 diff --git a/.github/pr-screenshots/version-component/lsu-version-devnet.png b/.github/pr-screenshots/version-component/lsu-version-devnet.png index 50fcd261f6723c14689fb1c8e6cff446d6b55f52..019056bf8a970fab5466aa7ca812dac78772cd27 100644 GIT binary patch literal 38846 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 B`>X%} literal 39156 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�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 E0kEGV#sB~S diff --git a/.github/pr-screenshots/version-component/lsu-version-mainnet-testnet.png b/.github/pr-screenshots/version-component/lsu-version-mainnet-testnet.png new file mode 100644 index 0000000000000000000000000000000000000000..1a5df41939b1dcc110199329db09f82f434579b8 GIT binary patch literal 38708 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 - + ```yaml - name: ADDITIONAL_CONFIG_SEQUENCER_LSU_SEQUENCING_BOUNDS @@ -119,7 +121,7 @@ Concretely, the procedure is as follows: ``` - + ```yaml - name: ADDITIONAL_CONFIG_SEQUENCER_LSU_SEQUENCING_BOUNDS diff --git a/docs-main/snippets/components/version.mdx b/docs-main/snippets/components/version.mdx index 97fc526f..988e436a 100644 --- a/docs-main/snippets/components/version.mdx +++ b/docs-main/snippets/components/version.mdx @@ -1,32 +1,55 @@ -export const VersionOption = ({ children }) => <>{children} +export const VersionOption = ({ children }) => <>{children}; -export const Version = ({ children, title, description, defaultLabel }) => { - const options = React.Children.toArray(children).filter((child) => child?.props?.label) +export const Version = ({ children, title, description, defaultLabel, defaultVersion, previousVersion, currentVersion, networkData = {} }) => { + const networkOrder = ['mainnet', 'testnet', 'devnet']; + const networksForVersion = (version) => { + return networkOrder.filter((networkKey) => networkData[networkKey]?.versions?.splice === version); + }; + const networkNames = (networkKeys) => { + return networkKeys.map((networkKey) => networkData[networkKey]?.name ?? networkKey).join(' / '); + }; + const labelForVersion = (version) => { + const networks = networksForVersion(version); + return networks.length ? networkNames(networks) : `CN ${version}`; + }; + const optionLabel = (option) => option.props.label ?? labelForVersion(option.props.version); + const options = React.Children.toArray(children).filter((child) => child?.props?.label || child?.props?.version); const defaultIndex = Math.max( 0, - options.findIndex((child) => child.props.label === defaultLabel), - ) - const [activeIndex, setActiveIndex] = React.useState(defaultIndex) - const activeOption = options[activeIndex] ?? options[0] + options.findIndex((child) => { + if (defaultVersion) { + return child.props.version === defaultVersion; + } + return optionLabel(child) === defaultLabel; + }), + ); + const [activeIndex, setActiveIndex] = React.useState(defaultIndex); + const activeOption = options[activeIndex] ?? options[0]; + const resolvedDescription = description ?? ( + previousVersion && currentVersion + ? `This section changed between Canton Network ${previousVersion} and ${currentVersion}. Use the tab that matches your network.` + : null + ); if (!options.length) { - return null + return null; } return (
- {(title || description) && ( + {(title || resolvedDescription) && (
{title &&
{title}
} - {description &&
{description}
} + {resolvedDescription &&
{resolvedDescription}
}
)}
{options.map((option, index) => { - const isActive = index === activeIndex + const isActive = index === activeIndex; + const label = optionLabel(option); return ( - ) + ); })}
{activeOption}
- ) -} + ); +}; diff --git a/docs-main/snippets/generated/version-dashboard-data.mdx b/docs-main/snippets/generated/version-dashboard-data.mdx index 9ac5c54c..edc7b53b 100644 --- a/docs-main/snippets/generated/version-dashboard-data.mdx +++ b/docs-main/snippets/generated/version-dashboard-data.mdx @@ -4,7 +4,7 @@ export const networkData = { description: 'Production network for live applications. Data is permanent and never reset. Upgrades follow DevNet and TestNet validation.', color: '#22c55e', versions: { - splice: '0.5.10', + splice: '0.5.18', damlSdk: '3.4.11', pqs: '3.4.1', tokenStandard: '1.0.0', @@ -13,13 +13,13 @@ export const networkData = { }, advanced: { minProtocolVersion: '6', - migrationId: '2', + migrationId: '4', darVersions: [ { name: 'splice-amulet', version: '0.1.14' }, { name: 'splice-wallet', version: '0.1.14' }, { name: 'splice-dso-governance', version: '0.1.20' }, ], - releaseUrl: 'https://github.com/hyperledger-labs/splice/releases/tag/v0.5.10', + releaseUrl: 'https://github.com/canton-network/splice/releases/tag/0.5.18', }, endpoint: 'scan.sv-1.global.canton.network.sync.global', }, @@ -28,7 +28,7 @@ export const networkData = { description: 'Pre-production environment for final validation. Requires MainNet approval to join. May be reset periodically.', color: '#eab308', versions: { - splice: '0.5.11', + splice: '0.5.18', damlSdk: '3.4.11', pqs: '3.4.1', tokenStandard: '1.0.0', @@ -37,13 +37,13 @@ export const networkData = { }, advanced: { minProtocolVersion: '6', - migrationId: '3', + migrationId: '1', darVersions: [ { name: 'splice-amulet', version: '0.1.15' }, { name: 'splice-wallet', version: '0.1.15' }, { name: 'splice-dso-governance', version: '0.1.21' }, ], - releaseUrl: 'https://github.com/hyperledger-labs/splice/releases/tag/v0.5.11', + releaseUrl: 'https://github.com/canton-network/splice/releases/tag/0.5.18', }, endpoint: 'scan.sv-1.test.global.canton.network.sync.global', }, From 3b55854588c016d59408f8da34a1a06a21bbd149 Mon Sep 17 00:00:00 2001 From: danielporterda Date: Mon, 11 May 2026 17:16:17 -0400 Subject: [PATCH 04/15] Show CN versions in version tab labels --- .../version-component/lsu-version-devnet.png | Bin 38846 -> 31492 bytes .../lsu-version-mainnet-testnet.png | Bin 38708 -> 31134 bytes .../logical-synchronizer-upgrade.mdx | 3 -- docs-main/snippets/components/version.mdx | 27 +++++++----------- 4 files changed, 11 insertions(+), 19 deletions(-) diff --git a/.github/pr-screenshots/version-component/lsu-version-devnet.png b/.github/pr-screenshots/version-component/lsu-version-devnet.png index 019056bf8a970fab5466aa7ca812dac78772cd27..c42ca23f978a33caec19d20b1c5abb9cbc2f919c 100644 GIT binary patch literal 31492 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 Uwbdqda(`S(O#VZ$h@tQQ0V1M&@c;k- literal 38846 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 B`>X%} diff --git a/.github/pr-screenshots/version-component/lsu-version-mainnet-testnet.png b/.github/pr-screenshots/version-component/lsu-version-mainnet-testnet.png index 1a5df41939b1dcc110199329db09f82f434579b8..177c569afb4241e0b4ea2a30a8a1bca88aaaf3d3 100644 GIT binary patch literal 31134 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
+A*cbFMe0B|J~knqTTDcjIfi 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 diff --git a/docs-main/snippets/components/version.mdx b/docs-main/snippets/components/version.mdx index 988e436a..edaa4f8b 100644 --- a/docs-main/snippets/components/version.mdx +++ b/docs-main/snippets/components/version.mdx @@ -1,6 +1,6 @@ export const VersionOption = ({ children }) => <>{children}; -export const Version = ({ children, title, description, defaultLabel, defaultVersion, previousVersion, currentVersion, networkData = {} }) => { +export const Version = ({ children, title, description, defaultLabel, networkData = {} }) => { const networkOrder = ['mainnet', 'testnet', 'devnet']; const networksForVersion = (version) => { return networkOrder.filter((networkKey) => networkData[networkKey]?.versions?.splice === version); @@ -10,26 +10,21 @@ export const Version = ({ children, title, description, defaultLabel, defaultVer }; const labelForVersion = (version) => { const networks = networksForVersion(version); - return networks.length ? networkNames(networks) : `CN ${version}`; + return networks.length ? `${networkNames(networks)} (${version})` : `CN ${version}`; }; - const optionLabel = (option) => option.props.label ?? labelForVersion(option.props.version); + const labelWithVersion = (label, version) => { + return version ? `${label} (${version})` : label; + }; + const optionLabel = (option) => option.props.label + ? labelWithVersion(option.props.label, option.props.version) + : labelForVersion(option.props.version); const options = React.Children.toArray(children).filter((child) => child?.props?.label || child?.props?.version); const defaultIndex = Math.max( 0, - options.findIndex((child) => { - if (defaultVersion) { - return child.props.version === defaultVersion; - } - return optionLabel(child) === defaultLabel; - }), + options.findIndex((child) => optionLabel(child) === defaultLabel), ); const [activeIndex, setActiveIndex] = React.useState(defaultIndex); const activeOption = options[activeIndex] ?? options[0]; - const resolvedDescription = description ?? ( - previousVersion && currentVersion - ? `This section changed between Canton Network ${previousVersion} and ${currentVersion}. Use the tab that matches your network.` - : null - ); if (!options.length) { return null; @@ -37,10 +32,10 @@ export const Version = ({ children, title, description, defaultLabel, defaultVer return (
- {(title || resolvedDescription) && ( + {(title || description) && (
{title &&
{title}
} - {resolvedDescription &&
{resolvedDescription}
} + {description &&
{description}
}
)}
From 4c48998a888f0745e20cebd1655a80d5939ef4ea Mon Sep 17 00:00:00 2001 From: danielporterda Date: Wed, 13 May 2026 13:57:29 -0400 Subject: [PATCH 05/15] Add network variable tabs for Splice docs --- config/repo-version-config.json | 463 +++++++++++------- .../appdev/deep-dives/token-standard.mdx | 9 +- .../modules/m7-canton-coin-preapprovals.mdx | 9 +- .../canton-console/console-overview.mdx | 101 ++-- .../deployment/kubernetes-deployment.mdx | 79 ++- .../deployment/onboarding-process.mdx | 11 +- .../required-network-parameters.mdx | 10 +- .../deployment/sv-network-resets.mdx | 10 +- .../deployment/synchronizer-traffic.mdx | 11 +- .../deployment/validator-docker-compose.mdx | 17 +- .../deployment/validator-kubernetes.mdx | 37 +- .../splice-metrics-overview.mdx | 10 +- .../validator-disaster-recovery.mdx | 15 +- .../reference/canton-console-reference.mdx | 101 ++-- .../understand/local-testing.mdx | 13 +- .../reference/splice-wallet-reference.mdx | 9 +- .../api-reference/splice-daml-apis.mdx | 9 +- .../api-reference/splice-http-apis.mdx | 9 +- .../splice-scan-bulk-data-api.mdx | 17 +- .../splice-scan-gs-connectivity-api.mdx | 9 +- docs-main/snippets/components/version.mdx | 157 +++++- .../generated/version-dashboard-data.mdx | 75 +++ scripts/helpers/updateVersionDashboardData.js | 2 + 23 files changed, 850 insertions(+), 333 deletions(-) diff --git a/config/repo-version-config.json b/config/repo-version-config.json index 06c245fb..bc340474 100644 --- a/config/repo-version-config.json +++ b/config/repo-version-config.json @@ -1,189 +1,290 @@ { - "versions": { + "versions": { + "mainnet": { + "name": "MainNet", + "advanced": { + "minProtocolVersion": "6", + "migrationId": "4", + "darVersions": [ + { + "name": "splice-amulet", + "version": "0.1.14" + }, + { + "name": "splice-wallet", + "version": "0.1.14" + }, + { + "name": "splice-dso-governance", + "version": "0.1.20" + } + ], + "releaseUrl": "https://github.com/canton-network/splice/releases/tag/0.5.18" + }, + "endpoint": "scan.sv-1.global.canton.network.sync.global", + "substitutions": { + "splice_cluster": "main", + "da_hostname": "global.canton.network.digitalasset.com", + "gsf_sv_url": "https://sv.sv-1.global.canton.network.sync.global", + "generic_sv_url": "https://sv.sv-1.global.canton.network.YOUR_SV_SPONSOR", + "gsf_scan_url": "https://scan.sv-1.global.canton.network.sync.global", + "generic_scan_url": "https://scan.sv-1.global.canton.network.YOUR_SV_SPONSOR", + "gsf_sequencer_url": "https://sequencer-MIGRATION_ID.sv-1.global.canton.network.sync.global", + "version": "0.5.18", + "version_literal": "0.5.18", + "chart_version_literal": "0.5.18", + "chart_version_set": "export CHART_VERSION=0.5.18", + "image_tag_set": "export IMAGE_TAG=0.5.18", + "image_tag_set_plain": "export IMAGE_TAG=0.5.18", + "bundle_download_link": { + "label": "Download Bundle", + "href": "https://github.com/digital-asset/decentralized-canton-sync/releases/download/v0.5.18/0.5.18_splice-node.tar.gz" + }, + "openapi_download_link": { + "label": "Download OpenAPI specs", + "href": "https://github.com/digital-asset/decentralized-canton-sync/releases/download/v0.5.18/0.5.18_openapi.tar.gz" + }, + "helm_repo_prefix": "oci://ghcr.io/digital-asset/decentralized-canton-sync/helm", + "docker_repo_prefix": "ghcr.io/digital-asset/decentralized-canton-sync/docker" + } + }, + "testnet": { + "name": "TestNet", + "advanced": { + "minProtocolVersion": "6", + "migrationId": "1", + "darVersions": [ + { + "name": "splice-amulet", + "version": "0.1.15" + }, + { + "name": "splice-wallet", + "version": "0.1.15" + }, + { + "name": "splice-dso-governance", + "version": "0.1.21" + } + ], + "releaseUrl": "https://github.com/canton-network/splice/releases/tag/0.5.18" + }, + "endpoint": "scan.sv-1.test.global.canton.network.sync.global", + "substitutions": { + "splice_cluster": "test", + "da_hostname": "test.global.canton.network.digitalasset.com", + "gsf_sv_url": "https://sv.sv-1.test.global.canton.network.sync.global", + "generic_sv_url": "https://sv.sv-1.test.global.canton.network.YOUR_SV_SPONSOR", + "gsf_scan_url": "https://scan.sv-1.test.global.canton.network.sync.global", + "generic_scan_url": "https://scan.sv-1.test.global.canton.network.YOUR_SV_SPONSOR", + "gsf_sequencer_url": "https://sequencer-MIGRATION_ID.sv-1.test.global.canton.network.sync.global", + "version": "0.5.18", + "version_literal": "0.5.18", + "chart_version_literal": "0.5.18", + "chart_version_set": "export CHART_VERSION=0.5.18", + "image_tag_set": "export IMAGE_TAG=0.5.18", + "image_tag_set_plain": "export IMAGE_TAG=0.5.18", + "bundle_download_link": { + "label": "Download Bundle", + "href": "https://github.com/digital-asset/decentralized-canton-sync/releases/download/v0.5.18/0.5.18_splice-node.tar.gz" + }, + "openapi_download_link": { + "label": "Download OpenAPI specs", + "href": "https://github.com/digital-asset/decentralized-canton-sync/releases/download/v0.5.18/0.5.18_openapi.tar.gz" + }, + "helm_repo_prefix": "oci://ghcr.io/digital-asset/decentralized-canton-sync/helm", + "docker_repo_prefix": "ghcr.io/digital-asset/decentralized-canton-sync/docker" + } + }, + "devnet": { + "name": "DevNet", + "advanced": { + "minProtocolVersion": "6", + "migrationId": "1", + "darVersions": [ + { + "name": "splice-amulet", + "version": "0.1.15" + }, + { + "name": "splice-wallet", + "version": "0.1.15" + }, + { + "name": "splice-dso-governance", + "version": "0.1.21" + } + ], + "releaseUrl": "https://github.com/canton-network/splice/releases/tag/0.6.3" + }, + "endpoint": "scan.sv-1.dev.global.canton.network.sync.global", + "substitutions": { + "splice_cluster": "dev", + "da_hostname": "dev.global.canton.network.digitalasset.com", + "gsf_sv_url": "https://sv.sv-1.dev.global.canton.network.sync.global", + "generic_sv_url": "https://sv.sv-1.dev.global.canton.network.YOUR_SV_SPONSOR", + "gsf_scan_url": "https://scan.sv-1.dev.global.canton.network.sync.global", + "generic_scan_url": "https://scan.sv-1.dev.global.canton.network.YOUR_SV_SPONSOR", + "gsf_sequencer_url": "https://sequencer-MIGRATION_ID.sv-1.dev.global.canton.network.sync.global", + "version": "0.6.3", + "version_literal": "0.6.3", + "chart_version_literal": "0.6.3", + "chart_version_set": "export CHART_VERSION=0.6.3", + "image_tag_set": "export IMAGE_TAG=0.6.3", + "image_tag_set_plain": "export IMAGE_TAG=0.6.3", + "bundle_download_link": { + "label": "Download Bundle", + "href": "https://github.com/digital-asset/decentralized-canton-sync/releases/download/v0.6.3/0.6.3_splice-node.tar.gz" + }, + "openapi_download_link": { + "label": "Download OpenAPI specs", + "href": "https://github.com/digital-asset/decentralized-canton-sync/releases/download/v0.6.3/0.6.3_openapi.tar.gz" + }, + "helm_repo_prefix": "oci://ghcr.io/digital-asset/decentralized-canton-sync/helm", + "docker_repo_prefix": "ghcr.io/digital-asset/decentralized-canton-sync/docker" + } + } + }, + "repositories": { + "splice": { + "url": "", + "versionMapping": { "mainnet": { - "name": "MainNet", - "advanced": { - "minProtocolVersion": "6", - "migrationId": "4", - "darVersions": [ - { "name": "splice-amulet", "version": "0.1.14" }, - { "name": "splice-wallet", "version": "0.1.14" }, - { "name": "splice-dso-governance", "version": "0.1.20" } - ], - "releaseUrl": "https://github.com/canton-network/splice/releases/tag/0.5.18" - }, - "endpoint": "scan.sv-1.global.canton.network.sync.global" + "branch": "main", + "externalVersion": "0.5.18", + "folderPathRepo": "splice-wallet-kernel" + }, + "devnet": { + "branch": "main", + "externalVersion": "0.6.3", + "folderPathRepo": "splice-wallet-kernel" }, "testnet": { - "name": "TestNet", - "advanced": { - "minProtocolVersion": "6", - "migrationId": "1", - "darVersions": [ - { "name": "splice-amulet", "version": "0.1.15" }, - { "name": "splice-wallet", "version": "0.1.15" }, - { "name": "splice-dso-governance", "version": "0.1.21" } - ], - "releaseUrl": "https://github.com/canton-network/splice/releases/tag/0.5.18" - }, - "endpoint": "scan.sv-1.test.global.canton.network.sync.global" - }, - "devnet": - { - "name": "DevNet", - "advanced": { - "minProtocolVersion": "6", - "migrationId": "1", - "darVersions": [ - { "name": "splice-amulet", "version": "0.1.15" }, - { "name": "splice-wallet", "version": "0.1.15" }, - { "name": "splice-dso-governance", "version": "0.1.21" } - ], - "releaseUrl": "https://github.com/canton-network/splice/releases/tag/0.6.3" - }, - "endpoint": "scan.sv-1.dev.global.canton.network.sync.global" - } + "branch": "main", + "externalVersion": "0.5.18", + "folderPathRepo": "splice-wallet-kernel" + } + } + }, + "damlSdk": { + "url": "", + "versionMapping": { + "mainnet": { + "branch": "", + "externalVersion": "3.4.11", + "folderPathRepo": "" + }, + "devnet": { + "branch": "", + "externalVersion": "3.4.11", + "folderPathRepo": "" + }, + "testnet": { + "branch": "", + "externalVersion": "3.4.11", + "folderPathRepo": "" + } + } + }, + "pqs": { + "url": "", + "versionMapping": { + "mainnet": { + "branch": "", + "externalVersion": "3.4.1", + "folderPathRepo": "" + }, + "devnet": { + "branch": "", + "externalVersion": "3.4.1", + "folderPathRepo": "" + }, + "testnet": { + "branch": "", + "externalVersion": "3.4.1", + "folderPathRepo": "" + } + } }, - "repositories": { - "splice": { - "url": "", - "versionMapping": { - "mainnet": { - "branch": "main", - "externalVersion": "0.5.18", - "folderPathRepo": "splice-wallet-kernel" - }, - "devnet": { - "branch": "main", - "externalVersion": "0.6.3", - "folderPathRepo": "splice-wallet-kernel" - }, - "testnet": { - "branch": "main", - "externalVersion": "0.5.18", - "folderPathRepo": "splice-wallet-kernel" - } - } - }, - "damlSdk": { - "url": "", - "versionMapping": { - "mainnet": { - "branch": "", - "externalVersion": "3.4.11", - "folderPathRepo": "" - }, - "devnet": { - "branch": "", - "externalVersion": "3.4.11", - "folderPathRepo": "" - }, - "testnet": { - "branch": "", - "externalVersion": "3.4.11", - "folderPathRepo": "" - } - } - }, - "pqs": { - "url": "", - "versionMapping": { - "mainnet": { - "branch": "", - "externalVersion": "3.4.1", - "folderPathRepo": "" - }, - "devnet": { - "branch": "", - "externalVersion": "3.4.1", - "folderPathRepo": "" - }, - "testnet": { - "branch": "", - "externalVersion": "3.4.1", - "folderPathRepo": "" - } - } - }, - "tokenStandard": { - "url": "", - "versionMapping": { - "mainnet": { - "branch": "", - "externalVersion": "1.0.0", - "folderPathRepo": "" - }, - "devnet": { - "branch": "", - "externalVersion": "1.0.0", - "folderPathRepo": "" - }, - "testnet": { - "branch": "", - "externalVersion": "1.0.0", - "folderPathRepo": "" - } - } - }, - "walletSdk": { - "url": "", - "versionMapping": { - "mainnet": { - "branch": "", - "externalVersion": "1.1.0", - "folderPathRepo": "" - }, - "devnet": { - "branch": "", - "externalVersion": "1.1.0", - "folderPathRepo": "" - }, - "testnet": { - "branch": "", - "externalVersion": "1.1.0", - "folderPathRepo": "" - } - } - }, - "dappSdk": { - "url": "", - "versionMapping": { - "mainnet": { - "branch": "", - "externalVersion": "1.1.0", - "folderPathRepo": "" - }, - "devnet": { - "branch": "", - "externalVersion": "1.1.0", - "folderPathRepo": "" - }, - "testnet": { - "branch": "", - "externalVersion": "1.1.0", - "folderPathRepo": "" - } - } - }, - "walletGateway": { - "url": "", - "versionMapping": { - "mainnet": { - "branch": "", - "externalVersion": "1.2.0", - "folderPathRepo": "" - }, - "devnet": { - "branch": "", - "externalVersion": "1.2.0", - "folderPathRepo": "" - }, - "testnet": { - "branch": "", - "externalVersion": "1.2.0", - "folderPathRepo": "" - } - } + "tokenStandard": { + "url": "", + "versionMapping": { + "mainnet": { + "branch": "", + "externalVersion": "1.0.0", + "folderPathRepo": "" + }, + "devnet": { + "branch": "", + "externalVersion": "1.0.0", + "folderPathRepo": "" + }, + "testnet": { + "branch": "", + "externalVersion": "1.0.0", + "folderPathRepo": "" + } + } + }, + "walletSdk": { + "url": "", + "versionMapping": { + "mainnet": { + "branch": "", + "externalVersion": "1.1.0", + "folderPathRepo": "" + }, + "devnet": { + "branch": "", + "externalVersion": "1.1.0", + "folderPathRepo": "" + }, + "testnet": { + "branch": "", + "externalVersion": "1.1.0", + "folderPathRepo": "" + } + } + }, + "dappSdk": { + "url": "", + "versionMapping": { + "mainnet": { + "branch": "", + "externalVersion": "1.1.0", + "folderPathRepo": "" + }, + "devnet": { + "branch": "", + "externalVersion": "1.1.0", + "folderPathRepo": "" + }, + "testnet": { + "branch": "", + "externalVersion": "1.1.0", + "folderPathRepo": "" + } + } + }, + "walletGateway": { + "url": "", + "versionMapping": { + "mainnet": { + "branch": "", + "externalVersion": "1.2.0", + "folderPathRepo": "" + }, + "devnet": { + "branch": "", + "externalVersion": "1.2.0", + "folderPathRepo": "" + }, + "testnet": { + "branch": "", + "externalVersion": "1.2.0", + "folderPathRepo": "" } + } } + } } diff --git a/docs-main/appdev/deep-dives/token-standard.mdx b/docs-main/appdev/deep-dives/token-standard.mdx index ec2c2c81..e684ca14 100644 --- a/docs-main/appdev/deep-dives/token-standard.mdx +++ b/docs-main/appdev/deep-dives/token-standard.mdx @@ -3,6 +3,9 @@ title: "Token Standard" description: "The Canton Network Token Standard APIs and Daml interfaces" --- +import { NetworkVariables } from '/snippets/components/version.mdx'; +import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; + {/* COPIED_START source="splice:docs/src/app_dev/token_standard/index.rst" hash="f20ad600" */} @@ -38,13 +41,17 @@ We recommend wallet providers to implement a UTXO management strategy that: ### Setting up MergeDelegations + + Assuming you are a wallet provider that runs a validator node for your users, you can set up `MergeDelegation` contracts for your users as follows. -1. Extract the latest version of the `splice-util-token-standard-wallet.dar` file from the release bundle ([Download Bundle](https://github.com/digital-asset/decentralized-canton-sync/releases/download/v0.6.3/0.6.3_splice-node.tar.gz)). +1. Extract the latest version of the `splice-util-token-standard-wallet.dar` file from the release bundle (|bundle_download_link|). 2. Upload the extracted `.dar` file to your validator node. 3. Adjust your user onboarding procedure such that the users signs the creation of a `MergeDelegationProposal` contract (see docs). 4. Accept the `MergeDelegationProposal` contracts by exercising their `Accept` choice using your wallet provider's party. + + ### Using MergeDelegations We recommend to use the `MergeDelegation` contracts in a batched fashion as follows. diff --git a/docs-main/appdev/modules/m7-canton-coin-preapprovals.mdx b/docs-main/appdev/modules/m7-canton-coin-preapprovals.mdx index bf9b4607..b1ab3be4 100644 --- a/docs-main/appdev/modules/m7-canton-coin-preapprovals.mdx +++ b/docs-main/appdev/modules/m7-canton-coin-preapprovals.mdx @@ -3,6 +3,9 @@ title: "Canton Coin Preapprovals" description: "How TransferPreapproval contracts enable preapproved Canton Coin transfers" --- +import { NetworkVariables } from '/snippets/components/version.mdx'; +import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; + {/* COPIED_START source="splice:docs/src/background/preapprovals.rst" hash="b2b9b8f3" */} @@ -11,14 +14,18 @@ This section was copied from existing reviewed documentation. Reviewers: Skip this section. Remove markers after final approval. + + Contrary to other assets like Eth or Bitcoin, Canton Coin requires a party to explicitly agree to hold Canton Coin. This includes explicitly agreeing to any incoming transfers. Parties that are ok with accepting incoming Canton Coin transfers from any sender, can setup a `TransferPreapproval`. This allows any party to send Canton Coin to the party that setup the `TransferPreapproval`. Note that this only applies to transfers of Canton Coin but not to other assets. Other assets may provide their own variant of a preapproval which needs to be setup separately or they may require approval of each incoming transfer individually. -To ensure that the super validators don't have to store and serve `TransferPreapprovals` contracts for parties that are no longer active or malicious parties cannot spam them, a preapproval has a limited lifetime until it expires and a fee must be burned proportional to the lifetime when creating the preapproval. The fee is controlled by the super validators through the `transferPreapprovalFee` parameter. The current value can be observed in CC Scan at [https://scan.sv-1.unknown_cluster.global.canton.network.sync.global/dso](https://scan.sv-1.unknown_cluster.global.canton.network.sync.global/dso) and defaults to \$1/year. +To ensure that the super validators don't have to store and serve `TransferPreapprovals` contracts for parties that are no longer active or malicious parties cannot spam them, a preapproval has a limited lifetime until it expires and a fee must be burned proportional to the lifetime when creating the preapproval. The fee is controlled by the super validators through the `transferPreapprovalFee` parameter. The current value can be observed in CC Scan at [|gsf_scan_url|/dso](|gsf_scan_url|/dso) and defaults to \$1/year. Each preapproval has two parties: The `receiver` party that approves incoming transfers and the `provider` party. The provider party is responsible for paying the fee and renewing the preapproval when it gets close to its expiry date. In return, the `provider` party will be the app provider on all incoming transfers that use this preapproval and get the app rewards for it. The `provider` party must not necessarily be hosted on the same node as the `receiver` party although that is the most common setup in practice. + + ## Setting up Preapprovals For parties not using external signing, the preapproval can be created by the user in the in their splice wallet UI through the button next to the logout button: diff --git a/docs-main/global-synchronizer/canton-console/console-overview.mdx b/docs-main/global-synchronizer/canton-console/console-overview.mdx index b6bf253f..eba54150 100644 --- a/docs-main/global-synchronizer/canton-console/console-overview.mdx +++ b/docs-main/global-synchronizer/canton-console/console-overview.mdx @@ -7,6 +7,9 @@ import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConsoleAccessNone40 from import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConsoleAccessBash166 from "/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-bash-166.mdx"; import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConsoleAccessBash174 from "/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-bash-174.mdx"; +import { NetworkVariables } from '/snippets/components/version.mdx'; +import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; + {/* COPIED_START source="splice:docs/src/deployment/console_access.rst" hash="bccf3653" */} @@ -46,53 +49,53 @@ Welcome to Canton! 4. Run the docker command - > ```bash - > docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf /canton:0.6.3 --console - > ``` - > - -> - >
- > - > Important - > - > - - > - > If you run the participant using the docker compose setup the docker command must be run with the docker network used by the participant. Adjust the configuration to connect to the participant container: - > - > ``` - > canton { - > remote-participants { - > participant { - > admin-api { - > port = 5002 - > address = participant - > } - > ledger-api { - > port = 5001 - > address = participant - > } - > token = "" - > } - > } - > features.enable-preview-commands = yes - > features.enable-testing-commands = yes - > features.enable-repair-commands = yes - > } - > ``` - > - > Running docker with the default network (`splice-validator`): - > - > ```bash - > ``` - > - > docker run -it --rm --network splice-validator -v \$(pwd)/console.conf:/app/app.conf /canton:0.6.3 --console - > - >
+ + +```bash +docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf |docker_repo_prefix|/canton:|version_literal| --console +``` + + + + +If you run the participant using the docker compose setup the docker command must be run with the docker network used by the participant. Adjust the configuration to connect to the participant container: + +```text +canton { + remote-participants { + participant { + admin-api { + port = 5002 + address = participant + } + ledger-api { + port = 5001 + address = participant + } + token = "" + } + } + features.enable-preview-commands = yes + features.enable-testing-commands = yes + features.enable-repair-commands = yes +} +``` + +Running docker with the default network (`splice-validator`): + + + +```bash +docker run -it --rm --network splice-validator -v \$(pwd)/console.conf:/app/app.conf |docker_repo_prefix|/canton:|version_literal| --console +``` + + + ## Sequencer console + + 1. Ensure you can access the sequencer's ports 5008 and 5009 2. Add the configuration to a local file `console.conf` @@ -120,11 +123,15 @@ Welcome to Canton! 3. Run the docker command > ```bash - > docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf /canton:0.6.3 --console + > docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf |docker_repo_prefix|/canton:|version_literal| --console > ``` + + ## Mediator console + + 1. Ensure you can access the mediator's port 5007 2. Add the configuration to a local file `console.conf` @@ -148,9 +155,11 @@ Welcome to Canton! 3. Run the docker command > ```bash - > docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf /canton:0.6.3 --console + > docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf |docker_repo_prefix|/canton:|version_literal| --console > ``` + + ## Access in a K8s cluster In a K8s cluster you can use a debug pod to access the console directly from the cluster. diff --git a/docs-main/global-synchronizer/deployment/kubernetes-deployment.mdx b/docs-main/global-synchronizer/deployment/kubernetes-deployment.mdx index de00bbdb..352851b7 100644 --- a/docs-main/global-synchronizer/deployment/kubernetes-deployment.mdx +++ b/docs-main/global-synchronizer/deployment/kubernetes-deployment.mdx @@ -24,6 +24,9 @@ import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmYaml914 from "/snip import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmBash978 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-bash-978.mdx"; import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvHelmNone1145 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-helm-none-1145.mdx"; +import { NetworkVariables } from '/snippets/components/version.mdx'; +import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; + {/* COPIED_START source="splice:docs/src/sv_operator/sv_helm.rst" hash="37dc325e" */} @@ -36,6 +39,8 @@ This section describes deploying a Super Validator (SV) node in kubernetes using ## Requirements + + 1) A running Kubernetes cluster in which you have administrator access to create and manage namespaces. 2) A development workstation with the following: @@ -45,10 +50,10 @@ This section describes deploying a Super Validator (SV) node in kubernetes using 3) Your cluster needs a static egress IP. After acquiring that, propose to the other SVs to add it to the IP allowlist. -4) Please download the release artifacts containing the sample Helm value files, from here: [Download Bundle](https://github.com/digital-asset/decentralized-canton-sync/releases/download/v0.6.3/0.6.3_splice-node.tar.gz), and extract the bundle: +4) Please download the release artifacts containing the sample Helm value files, from here: |bundle_download_link|, and extract the bundle: ```bash -tar xzvf 0.6.3_splice-node.tar.gz +tar xzvf |version|_splice-node.tar.gz ``` 5) Please inquire the migration id and serial id of the global synchronizer on your target network. The migration ID is frozen at the value after the last major upgrade and is only used for `migration.id` in the helm chart values. The serial ID is 0 for the initial synchronizer deployment and is incremented by 1 for each logical synchronizer upgrade. The serial ID is used for helm release names, DNS entries, database names, and deployment naming. @@ -58,6 +63,8 @@ export MIGRATION_ID=0 export SERIAL_ID=0 ``` + + ## Generating an SV identity SV operators are identified by a human-readable name and an EC public key. This identification is stable across deployments of the Global Synchronizer. You are, for example, expected to reuse your SV name and public key between (test-)network resets. @@ -245,7 +252,9 @@ Every SV node also deploys a CometBFT node. This node must be configured to join ### Generating your CometBFT node keys -To generate the node config you use the CometBFT docker image provided through Github Container Registry (). + + +To generate the node config you use the CometBFT docker image provided through Github Container Registry (|docker_repo_prefix|). Use the following shell commands to generate the proper keys: @@ -254,9 +263,9 @@ Use the following shell commands to generate the proper keys: mkdir cometbft cd cometbft # Init the node -docker run --rm -v "$(pwd):/init" /cometbft:0.6.3 init --home /init +docker run --rm -v "$(pwd):/init" |docker_repo_prefix|/cometbft:|version| init --home /init # Read the node id and keep a note of it for the deployment -docker run --rm -v "$(pwd):/init" /cometbft:0.6.3 show-node-id --home /init +docker run --rm -v "$(pwd):/init" |docker_repo_prefix|/cometbft:|version| show-node-id --home /init ``` Please keep a note of the node ID printed out above. @@ -268,6 +277,8 @@ In addition, please retain some of the configuration files generated, as follows Any other files can be ignored. + + ### Configuring your CometBFT node keys The CometBFT node is configured with a secret, based on the output from Generating the CometBFT node identity The secret is created as follows, with the `node_key.json` and `priv_validator_key.json` files representing the files generated as part of the node identity: @@ -353,15 +364,19 @@ All apps support reading the Postgres password from a Kubernetes secret. Current ### Postgres in the Cluster + + If you wish to run the Postgres instances as pods in your cluster, you can use the `splice-postgres` Helm chart to install them: ```bash -helm install sequencer-pg /splice-postgres -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/postgres-values-sequencer.yaml --wait -helm install mediator-pg /splice-postgres -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/postgres-values-mediator.yaml --wait -helm install participant-pg /splice-postgres -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/postgres-values-participant.yaml --wait -helm install apps-pg /splice-postgres -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/postgres-values-apps.yaml --wait +helm install sequencer-pg |helm_repo_prefix|/splice-postgres -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/postgres-values-sequencer.yaml --wait +helm install mediator-pg |helm_repo_prefix|/splice-postgres -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/postgres-values-mediator.yaml --wait +helm install participant-pg |helm_repo_prefix|/splice-postgres -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/postgres-values-participant.yaml --wait +helm install apps-pg |helm_repo_prefix|/splice-postgres -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/postgres-values-apps.yaml --wait ``` + + ### Cloud-Hosted Postgres If you wish to use cloud-hosted Postgres instances, please configure and initialize each of them as follows: @@ -376,16 +391,18 @@ Note that the default Helm values files used below assume that the Postgres inst ### Configuring the Helm Charts + + To install the Helm charts needed to start an SV node connected to the cluster, you will need to meet a few preconditions. The first is that there needs to be an environment variable defined to refer to the version of the Helm charts necessary to connect to this environment: ```bash -export CHART_VERSION=0.6.3 +|chart_version_set| ``` An SV node includes a CometBFT node so you also need to configure that. Please modify the file `splice-node/examples/sv-helm/cometbft-values.yaml` as follows: -- Replace all instances of `TARGET_CLUSTER` with unknown_cluster, per the cluster to which you are connecting. -- Replace all instances of `TARGET_HOSTNAME` with unknown_cluster.global.canton.network.digitalasset.com, per the cluster to which you are connecting. +- Replace all instances of `TARGET_CLUSTER` with |splice_cluster|, per the cluster to which you are connecting. +- Replace all instances of `TARGET_HOSTNAME` with |da_hostname|, per the cluster to which you are connecting. - Replace all instances of `SERIAL_ID` with the serial ID of the global synchronizer on your target cluster. Note that `SERIAL_ID` is also used within port numbers in URLs here! - Replace `YOUR_SV_NAME` with the name you chose when creating the SV identity (this must be an exact match of the string for your SV to be approved to onboard) - Replace `YOUR_COMETBFT_NODE_ID` with the id obtained when generating the config for the CometBFT node @@ -428,7 +445,7 @@ An SV node includes a validator app so you also need to configure that. Please m Additionally, please modify the file `splice-node/examples/sv-helm/sv-validator-values.yaml` as follows: -- Replace all instances of `TARGET_HOSTNAME` with unknown_cluster.global.canton.network.digitalasset.com, per the cluster to which you are connecting. +- Replace all instances of `TARGET_HOSTNAME` with |da_hostname|, per the cluster to which you are connecting. - Replace all instances of `MIGRATION_ID` with the migration ID of the global synchronizer on your target cluster. - Replace all instances of `SERIAL_ID` with the serial ID of the global synchronizer on your target cluster. @@ -438,7 +455,7 @@ The private and public key for your SV are defined in a K8s secret. If you haven For configuring your sv app, please modify the file `splice-node/examples/sv-helm/sv-values.yaml` as follows: -- Replace all instances of `TARGET_HOSTNAME` with unknown_cluster.global.canton.network.digitalasset.com, per the cluster to which you are connecting. +- Replace all instances of `TARGET_HOSTNAME` with |da_hostname|, per the cluster to which you are connecting. - Replace all instances of `MIGRATION_ID` with the migration ID of the global synchronizer on your target cluster. - Replace all instances of `SERIAL_ID` with the serial ID of the global synchronizer on your target cluster. - If you want to configure the audience for the SV app backend API, replace `OIDC_AUTHORITY_SV_AUDIENCE` in the `auth.audience` entry with audience for the SV app backend API. e.g. `https://sv.example.com/api`. @@ -465,11 +482,11 @@ migration: Please modify the file `splice-node/examples/sv-helm/info-values.yaml` as follows: -- Replace `TARGET_CLUSTER` with unknown_cluster -- Replace `MD5_HASH_OF_ALLOWED_IP_RANGES` with the MD5 hash of the `allowed-ip-ranges.json` file corresponding to the unknown_cluster network. -- Replace `MD5_HASH_OF_APPROVED_SV_IDENTITIES` with the MD5 hash of the `approved-sv-id-values.yaml` file corresponding to the unknown_cluster network. +- Replace `TARGET_CLUSTER` with |splice_cluster| +- Replace `MD5_HASH_OF_ALLOWED_IP_RANGES` with the MD5 hash of the `allowed-ip-ranges.json` file corresponding to the |splice_cluster| network. +- Replace `MD5_HASH_OF_APPROVED_SV_IDENTITIES` with the MD5 hash of the `approved-sv-id-values.yaml` file corresponding to the |splice_cluster| network. - Replace `MIGRATION_ID` with the migration ID of the global synchronizer on your target cluster. -- Replace all instances of `CHAIN_ID_SUFFIX` with the chain ID suffix of the unknown_cluster network. +- Replace all instances of `CHAIN_ID_SUFFIX` with the chain ID suffix of the |splice_cluster| network. - Uncomment `staging` synchronizer and `legacy` synchronizer sections if you are using them. - Replace `STAGING_SYNCHRONIZER_MIGRATION_ID` with the migration ID of the staging synchronizer on your target cluster. - Replace `STAGING_SYNCHRONIZER_VERSION` with the version of the staging synchronizer on your target cluster. @@ -483,15 +500,19 @@ The [configs repo](https://github.com/global-synchronizer-foundation/configs) co These environment variables will be used below. + + ### Installing the Helm Charts + + With these files in place, you can execute the following helm commands in sequence. It's generally a good idea to wait until each deployment reaches a stable state prior to moving on to the next step. Install the Canton and CometBFT components: ```bash -helm install global-domain-${SERIAL_ID}-cometbft /splice-cometbft -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/cometbft-values.yaml --wait -helm install global-domain-${SERIAL_ID} /splice-global-domain -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/global-domain-values.yaml --wait +helm install global-domain-${SERIAL_ID}-cometbft |helm_repo_prefix|/splice-cometbft -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/cometbft-values.yaml --wait +helm install global-domain-${SERIAL_ID} |helm_repo_prefix|/splice-global-domain -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/global-domain-values.yaml --wait ``` Note that we use the serial ID when naming Canton synchronizer components. This is to support operating multiple instances of these components side by side as part of a logical synchronizer upgrade. @@ -499,21 +520,21 @@ Note that we use the serial ID when naming Canton synchronizer components. This Install the participant: ```bash -helm install participant /splice-participant -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/participant-values.yaml --wait +helm install participant |helm_repo_prefix|/splice-participant -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/participant-values.yaml --wait ``` Install the SV node apps: ```bash -helm install sv /splice-sv-node -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/sv-values.yaml -f ${SV_IDENTITIES_FILE} -f ${UI_CONFIG_VALUES_FILE} --wait -helm install scan /splice-scan -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/scan-values.yaml -f ${UI_CONFIG_VALUES_FILE} --wait -helm install validator /splice-validator -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/validator-values.yaml -f splice-node/examples/sv-helm/sv-validator-values.yaml -f ${UI_CONFIG_VALUES_FILE} --wait +helm install sv |helm_repo_prefix|/splice-sv-node -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/sv-values.yaml -f ${SV_IDENTITIES_FILE} -f ${UI_CONFIG_VALUES_FILE} --wait +helm install scan |helm_repo_prefix|/splice-scan -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/scan-values.yaml -f ${UI_CONFIG_VALUES_FILE} --wait +helm install validator |helm_repo_prefix|/splice-validator -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/validator-values.yaml -f splice-node/examples/sv-helm/sv-validator-values.yaml -f ${UI_CONFIG_VALUES_FILE} --wait ``` Install the INFO app, which is used to provide information about the SV node and its configuration: ```bash -helm install info /splice-info -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/info-values.yaml +helm install info |helm_repo_prefix|/splice-info -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/info-values.yaml ``` Once everything is running, you should be able to inspect the state of the cluster and observe pods running in the new namespace. A typical query might look as follows: @@ -522,6 +543,8 @@ Once everything is running, you should be able to inspect the state of the clust Note also that `Pod` restarts may happen during bringup, particularly if all helm charts are deployed at the same time. The `splice-sv-node` cannot start until `participant` is running and `participant` cannot start until `postgres` is running. + + ## SV Network Diagram SV Network Diagram @@ -595,6 +618,8 @@ In order to install the reference charts, the following must be satisfied in you ### Installation Instructions + + Create a `cluster-ingress` namespace: @@ -630,9 +655,11 @@ The http gateway terminates tls using the secret that you configured above, and using: ```bash -helm install cluster-ingress-sv /splice-cluster-ingress-runbook -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/sv-cluster-ingress-values.yaml +helm install cluster-ingress-sv |helm_repo_prefix|/splice-cluster-ingress-runbook -n sv --version ${CHART_VERSION} -f splice-node/examples/sv-helm/sv-cluster-ingress-values.yaml ``` + + ## Configuring the Cluster Egress Below is a complete list of destinations for outbound traffic from the Super Validator node. This list is useful for an SV that wishes to limit egress to only allow the minimum necessary outbound traffic. `S` will be used a shorthand for `SERIAL_ID`. The tables below are wide - you might need to scroll vertically to see the rightmost columns. diff --git a/docs-main/global-synchronizer/deployment/onboarding-process.mdx b/docs-main/global-synchronizer/deployment/onboarding-process.mdx index 1db28892..94a804d6 100644 --- a/docs-main/global-synchronizer/deployment/onboarding-process.mdx +++ b/docs-main/global-synchronizer/deployment/onboarding-process.mdx @@ -6,6 +6,9 @@ description: "How to onboard your validator on DevNet, TestNet, and MainNet via import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorOnboardingBash107 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-onboarding-bash-107.mdx"; import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorOnboardingBash136 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-onboarding-bash-136.mdx"; +import { NetworkVariables } from '/snippets/components/version.mdx'; +import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; + {/* COPIED_START source="splice:docs/src/validator_operator/validator_onboarding.rst" hash="a1a3ab0c" */} @@ -42,6 +45,8 @@ Onboarding a Validator involves the following steps (for each network you want t ## Validating that your IP has been approved + + To validate that the SVs have added you to their respective IP allowlists, you can query their Scan URLs. Note that this must be run from the same egress IP from which you want to deploy your validator, e.g., from the VM that you want to run your docker compose setup on, or from within your Kubernetes cluster. First, please confirm that your egress IP in the terminal in which you are running the command is indeed the one you provided for whitelisting by running: @@ -57,7 +62,7 @@ Note that the following snippet requires installing [jq](https://jqlang.org/). ```bash (set -o pipefail CURL='curl -fsS -m 5 --connect-timeout 5' -for url in $($CURL https://scan.sv-1.unknown_cluster.global.canton.network.sync.global/api/scan/v0/scans | jq -r '.scans[].scans[].publicUrl'); do +for url in $($CURL |gsf_scan_url|/api/scan/v0/scans | jq -r '.scans[].scans[].publicUrl'); do echo -n "$url: " $CURL "$url"/api/scan/version | jq -r '.version' done) @@ -71,7 +76,7 @@ Apart from connectivity to Scan, your validator must also be able to connect to ```bash (set -o pipefail -for url in $(curl -fsS -m 5 --connect-timeout 5 https://scan.sv-1.unknown_cluster.global.canton.network.sync.global/api/scan/v0/dso-sequencers | jq -r '.domainSequencers[].sequencers[].url | sub("https://"; "")'); do +for url in $(curl -fsS -m 5 --connect-timeout 5 |gsf_scan_url|/api/scan/v0/dso-sequencers | jq -r '.domainSequencers[].sequencers[].url | sub("https://"; "")'); do echo -n "$url: " grpcurl --max-time 10 "$url":443 grpc.health.v1.Health/Check done) @@ -83,6 +88,8 @@ Sequencers that are functional and have whitelisted your IP correctly will retur The default configuration for both of these requires access to at least 2/3 of the SVs for each of scans and sequencers. You may, at your option and own risk, configure connection to a single trusted scan and sequencer as described under validator helm chart configuration, at the cost of losing BFT integrity guarantees. + + ## Stay Connected To stay connected with other validator operators, there is a shared slack channel and a few mailing lists: diff --git a/docs-main/global-synchronizer/deployment/required-network-parameters.mdx b/docs-main/global-synchronizer/deployment/required-network-parameters.mdx index b77d8063..5f90d5e9 100644 --- a/docs-main/global-synchronizer/deployment/required-network-parameters.mdx +++ b/docs-main/global-synchronizer/deployment/required-network-parameters.mdx @@ -3,6 +3,9 @@ title: "Required Network Parameters" description: "Parameters required to initialise a validator node and connect to the network" --- +import { NetworkVariables } from '/snippets/components/version.mdx'; +import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; + {/* COPIED_START source="splice:docs/src/validator_operator/required_network_parameters.rst" hash="236187bd" */} @@ -11,10 +14,12 @@ This section was copied from existing reviewed documentation. Reviewers: Skip this section. Remove markers after final approval. + + To initialize your validator node, you need the following parameters that define the network you're onboarding to and the secret required for doing so. - **MIGRATION_ID** — The current migration id of the network (dev/test/mainnet) you are trying to connect to. This value is frozen and must not be changed from the last value. You can find this on [https://sync.global/sv-network/](https://sync.global/sv-network/). -- **SPONSOR_SV_URL** — The URL of the SV app of your SV sponsor. This should be of the form [https://sv.sv-1.unknown_cluster.global.canton.network.YOUR_SV_SPONSOR](https://sv.sv-1.unknown_cluster.global.canton.network.YOUR_SV_SPONSOR), e.g., if the Global Synchronizer Foundation is your sponsor use [https://sv.sv-1.unknown_cluster.global.canton.network.sync.global](https://sv.sv-1.unknown_cluster.global.canton.network.sync.global). +- **SPONSOR_SV_URL** — The URL of the SV app of your SV sponsor. This should be of the form [|generic_sv_url|](|generic_sv_url|), e.g., if the Global Synchronizer Foundation is your sponsor use [|gsf_sv_url|](|gsf_sv_url|). ONBOARDING_SECRET The onboarding secret provided by your sponsor. If you don't already have one, ask your sponsor. Note that onboarding secrets are one-time use and expire after 48 hours. If you don't join before it expires, you need to request a new secret from your SV sponsor. @@ -36,4 +41,7 @@ Note that this self-served secret is only valid for 1 hour. + + + {/* COPIED_END */} \ No newline at end of file diff --git a/docs-main/global-synchronizer/deployment/sv-network-resets.mdx b/docs-main/global-synchronizer/deployment/sv-network-resets.mdx index 9660cd72..463172e6 100644 --- a/docs-main/global-synchronizer/deployment/sv-network-resets.mdx +++ b/docs-main/global-synchronizer/deployment/sv-network-resets.mdx @@ -7,6 +7,9 @@ import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvNetworkResetsBash75 fro import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvNetworkResetsBash81 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-network-resets-bash-81.mdx"; import ExternalSpliceMainSpliceRstCodeDocsSrcSvOperatorSvNetworkResetsBash90 from "/snippets/external/splice/main/splice-rst-code-docs-src-sv-operator-sv-network-resets-bash-90.mdx"; +import { NetworkVariables } from '/snippets/components/version.mdx'; +import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; + {/* COPIED_START source="splice:docs/src/sv_operator/sv_network_resets.rst" hash="1e423aba" */} @@ -15,6 +18,8 @@ This section was copied from existing reviewed documentation. Reviewers: Skip this section. Remove markers after final approval. + + DevNet and TestNet get reset roughly every 3 months with the resets spread out such that they never happen at the same time on DevNet and TestNet. The exact time is announced in the `#supervalidator-operations` channel run by the [Global Synchronizer Foundation](https://sync.global/). A reset requires a full redeployment of your node and loses any data you had on the node. Your node will not be functional until you complete the reset. Wait for the bootstrapping SV-1 to announce that they completed redeployment of their node before attempting to redeploy your node. @@ -22,7 +27,7 @@ A reset requires a full redeployment of your node and loses any data you had on To complete the reset, go through the following steps: 1. Backup information to be preserved across the reset - 1. Take a backup of the DSO configuration (replace YOUR_SCAN_URL with your own scan e.g. [https://scan.sv-1.unknown_cluster.global.canton.network.sync.global](https://scan.sv-1.unknown_cluster.global.canton.network.sync.global)): + 1. Take a backup of the DSO configuration (replace YOUR_SCAN_URL with your own scan e.g. [|gsf_scan_url|](|gsf_scan_url|)): curl -sSL --fail-with-body https://YOUR_SCAN_URL/api/scan/v0/dso > backup.json @@ -85,4 +90,7 @@ To complete the reset, go through the following steps: 4. Update your auto-sweeping configuration, as party ids change as part of the reset. + + + {/* COPIED_END */} \ No newline at end of file diff --git a/docs-main/global-synchronizer/deployment/synchronizer-traffic.mdx b/docs-main/global-synchronizer/deployment/synchronizer-traffic.mdx index d67a85b1..71a0a1df 100644 --- a/docs-main/global-synchronizer/deployment/synchronizer-traffic.mdx +++ b/docs-main/global-synchronizer/deployment/synchronizer-traffic.mdx @@ -5,6 +5,9 @@ description: "Traffic accounting, fees, and monitoring on the Global Synchronize import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentTrafficJson94 from "/snippets/external/splice/main/splice-rst-code-docs-src-deployment-traffic-json-94.mdx"; +import { NetworkVariables } from '/snippets/components/version.mdx'; +import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; + {/* COPIED_START source="splice:docs/src/deployment/traffic.rst" hash="0e110a7b" */} @@ -44,10 +47,12 @@ Traffic accounting is "by participant"; all parties hosted on the same participa ## Traffic parameters + + The current synchronizer traffic parameters are recorded on the global `AmuletRules` contract and can be obtained from Scan. You can obtain them via the Scan UI or by querying the Scan API using, for example, this command (requires installing [jq](https://jqlang.org/)): ```bash -curl -X POST --header "Content-Type: application/json" -d "{}" https://scan.sv-1.unknown_cluster.global.canton.network.sync.global/api/scan/v0/amulet-rules | jq ".amulet_rules_update.contract.payload.configSchedule.initialValue.decentralizedSynchronizer.fees" +curl -X POST --header "Content-Type: application/json" -d "{}" |gsf_scan_url|/api/scan/v0/amulet-rules | jq ".amulet_rules_update.contract.payload.configSchedule.initialValue.decentralizedSynchronizer.fees" ``` Above command will return a JSON object similar to the following: @@ -61,7 +66,7 @@ This represents an encoded instance of the `SynchronizerFeesConfig` Daml data ty - `extraTrafficPrice`: the price of extra traffic beyond the free tier, denominated in USD per MB. The price is charged in `CC` as per the current USD exchange rate. The exchange rate is determined by SVs via median voting and recorded on current `OpenMiningRound` contracts obtainable from Scan. For querying the current CC price in USD as per the currently open mining round, you can check the Scan UI or use the following command (requires installing [jq](https://jqlang.org/)): ```bash - curl -X POST --header "Content-Type: application/json" -d "{\"cached_open_mining_round_contract_ids\":[], \"cached_issuing_round_contract_ids\":[]}" https://scan.sv-1.unknown_cluster.global.canton.network.sync.global/api/scan/v0/open-and-issuing-mining-rounds | jq ".open_mining_rounds | values[] | .contract.payload | {round, amuletPrice}" + curl -X POST --header "Content-Type: application/json" -d "{\"cached_open_mining_round_contract_ids\":[], \"cached_issuing_round_contract_ids\":[]}" |gsf_scan_url|/api/scan/v0/open-and-issuing-mining-rounds | jq ".open_mining_rounds | values[] | .contract.payload | {round, amuletPrice}" ``` - `readVsWriteScalingFactor`: specifies the weight of additional traffic balance subtractions (from a sender's balance) for delivering a synchronizer message to each of its recipients. Delivering messages incurs actual costs for the SVs, even if this cost is much smaller than the cost of ordering and persisting messages. The `readVsWriteScalingFactor` is specified in basis points (parts per 10,000), i.e., a value of 1 means that for each 1000 bytes that need to be delivered to a recipient, 0.1 bytes of traffic will be charged. So for example: At a factor of 4, a 1 MB message with 10 recipients will draw `1,000,000 * (1 + 10 * 0.004) = 1,040,000` bytes from the sending participant's traffic balance. @@ -70,6 +75,8 @@ This represents an encoded instance of the `SynchronizerFeesConfig` Daml data ty Like all parts of the `AmuletRulesConfig`, the `SynchronizerFeesConfig` is set by SVs via on-ledger voting, as part of DSO governance. The SV operations docs contain pointers for determining good values for some of these parameters. + + ## How traffic balance interacts with transaction submission Here's an example of traffic accounting in practice for submitting a transaction: diff --git a/docs-main/global-synchronizer/deployment/validator-docker-compose.mdx b/docs-main/global-synchronizer/deployment/validator-docker-compose.mdx index 9fe4d6e5..48b6fa47 100644 --- a/docs-main/global-synchronizer/deployment/validator-docker-compose.mdx +++ b/docs-main/global-synchronizer/deployment/validator-docker-compose.mdx @@ -9,6 +9,9 @@ import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorComposeYa import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorComposeBash123 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-bash-123.mdx"; import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorComposeBash262 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-compose-bash-262.mdx"; +import { NetworkVariables } from '/snippets/components/version.mdx'; +import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; + {/* COPIED_START source="splice:docs/src/validator_operator/validator_compose.rst" hash="074ae45b" */} @@ -31,6 +34,8 @@ This deployment is useful for: ## Requirements + + 1) A linux/MacOS machine with the following: 1. [docker compose](https://docs.docker.com/compose/install/) - at least version 2.26.0 or newer @@ -44,14 +49,16 @@ To validate that the dependencies are set up correctly, run the following comman 2) Your machine should either be connected to a VPN that is whitelisted on the network (contact your sponsor SV to obtain access), or have a static egress IP address. In the latter case, please provide that IP address to your sponsor SV to add it to the firewall rules. -3) Please download the release artifacts containing the docker-compose files, from here: [Download Bundle](https://github.com/digital-asset/decentralized-canton-sync/releases/download/v0.6.3/0.6.3_splice-node.tar.gz), and extract the bundle: +3) Please download the release artifacts containing the docker-compose files, from here: |bundle_download_link|, and extract the bundle: ```bash -tar xzvf 0.6.3_splice-node.tar.gz +tar xzvf |version|_splice-node.tar.gz ``` Additional parameters describing your own setup as opposed to the connection to the network are described below. + + ### HTTP Proxy configuration If you need to use an HTTP forward proxy for egress in your environment, you need to set `https.proxyHost` and `https.proxyPort` in `JAVA_TOOL_OPTIONS` in `splice-node/docker-compose/validator/compose.yaml` to use the HTTP proxy for outgoing connections. You need to do this for both the validator and the participant services: @@ -95,11 +102,13 @@ services: ## Deployment + + 1) Change to the `docker-compose` directory inside the extracted bundle: -2) Export the current version to an environment variable: export IMAGE_TAG=0.6.3 +2) Export the current version to an environment variable: |image_tag_set| 3) Run the following command to start the validator node, and wait for it to become ready (could take a few minutes): > ```bash @@ -113,6 +122,8 @@ services: Note that the validator may be stopped with the command `./stop.sh` and restarted again with the same `start.sh` command as above. Its data will be retained between invocations. In subseqent invocations, the secret itself may be left empty, but the `-o` is still mandatory, so a `-o ""` argument should be provided. + + ## Logging into the wallet UI diff --git a/docs-main/global-synchronizer/deployment/validator-kubernetes.mdx b/docs-main/global-synchronizer/deployment/validator-kubernetes.mdx index 1c0db4a4..99bd4ff4 100644 --- a/docs-main/global-synchronizer/deployment/validator-kubernetes.mdx +++ b/docs-main/global-synchronizer/deployment/validator-kubernetes.mdx @@ -20,6 +20,9 @@ import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorHelmBash6 import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorHelmYaml771 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-771.mdx"; import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorHelmYaml797 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-helm-yaml-797.mdx"; +import { NetworkVariables } from '/snippets/components/version.mdx'; +import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; + {/* COPIED_START source="splice:docs/src/validator_operator/validator_helm.rst" hash="b0bc851d" */} @@ -32,6 +35,8 @@ This section describes how to deploy a standalone validator node in Kubernetes u ## Requirements + + 1) A running Kubernetes cluster in which you have administrator access to create and manage namespaces. 2) A development workstation with the following: @@ -41,16 +46,18 @@ This section describes how to deploy a standalone validator node in Kubernetes u 3) Your cluster needs a static egress IP. After acquiring that, provide it to your SV sponsor who will propose adding it to the IP allowlist to the other SVs. -4) Please download the release artifacts containing the sample Helm value files, from here: [Download Bundle](https://github.com/digital-asset/decentralized-canton-sync/releases/download/v0.6.3/0.6.3_splice-node.tar.gz), and extract the bundle: +4) Please download the release artifacts containing the sample Helm value files, from here: |bundle_download_link|, and extract the bundle: ```bash -tar xzvf 0.6.3_splice-node.tar.gz +tar xzvf |version|_splice-node.tar.gz ``` -- **TRUSTED_SCAN_URL** — The scan URL of an SV that you trust and that is reachable by your validator, often your SV sponsor. This should be of the form [https://scan.sv-1.unknown_cluster.global.canton.network.YOUR_SV_SPONSOR](https://scan.sv-1.unknown_cluster.global.canton.network.YOUR_SV_SPONSOR), e.g., for the Global Synchronizer Foundation SV it is [https://scan.sv-1.unknown_cluster.global.canton.network.sync.global](https://scan.sv-1.unknown_cluster.global.canton.network.sync.global). +- **TRUSTED_SCAN_URL** — The scan URL of an SV that you trust and that is reachable by your validator, often your SV sponsor. This should be of the form [|generic_scan_url|](|generic_scan_url|), e.g., for the Global Synchronizer Foundation SV it is [|gsf_scan_url|](|gsf_scan_url|). Additional parameters describing your own setup as opposed to the connection to the network are described below. + + ## Validator Network Diagram Validator Network Diagram @@ -259,10 +266,12 @@ When running without authentication, the username of the validator administrator ### Configuring the Helm Charts + + To install the Helm charts needed to start a Validator node connected to the cluster, you will need to meet a few preconditions. The first is that there needs to be an environment variable defined to refer to the version of the Helm charts necessary to connect to this environment: ```bash -export CHART_VERSION=0.6.3 +|chart_version_set| ``` Please modify the file `splice-node/examples/sv-helm/participant-values.yaml` as follows: @@ -317,7 +326,7 @@ scanClient: # scanAddress: "TRUSTED_SCAN_URL" # replace with the trusted scan url ``` -For your selected `scanClient` type, replace `TRUSTED_SCAN_URL` with a URL of a Scan you host or trust that is reachable by your Validator. For example, the GSF scan URL, [https://scan.sv-1.unknown_cluster.global.canton.network.sync.global](https://scan.sv-1.unknown_cluster.global.canton.network.sync.global). For `bft-custom` and `bft` modes of `scanClient`, you can specify more than one scan seed URL by separating them with commas. +For your selected `scanClient` type, replace `TRUSTED_SCAN_URL` with a URL of a Scan you host or trust that is reachable by your Validator. For example, the GSF scan URL, [|gsf_scan_url|](|gsf_scan_url|). For `bft-custom` and `bft` modes of `scanClient`, you can specify more than one scan seed URL by separating them with commas. - If you want to configure the audience for the Validator app backend API, replace `OIDC_AUTHORITY_VALIDATOR_AUDIENCE` in the `auth.audience` entry with audience for the Validator app backend API. e.g. `https://validator.example.com/api`. - If you want to configure the audience for the Ledger API, set the `audience` field in the `splice-app-validator-ledger-api-auth` k8s secret with the audience for the Ledger API. e.g. `https://ledger_api.example.com`. @@ -368,14 +377,18 @@ Additionally, please modify the file `splice-node/examples/sv-helm/standalone-va Finally, please download the UI config values file from [https://github.com/global-synchronizer-foundation/configs/blob/main/configs/ui-config-values.yaml](https://github.com/global-synchronizer-foundation/configs/blob/main/configs/ui-config-values.yaml) and add the values from it to your `standalone-validator-values.yaml`. + + ### Installing the Helm Charts + + With these files in place, you can execute the following helm commands in sequence. It's generally a good idea to wait until each deployment reaches a stable state prior to moving on to the next step. ```bash -helm install postgres /splice-postgres -n validator --version ${CHART_VERSION} -f splice-node/examples/sv-helm/postgres-values-validator-participant.yaml --wait -helm install participant /splice-participant -n validator --version ${CHART_VERSION} -f splice-node/examples/sv-helm/participant-values.yaml -f splice-node/examples/sv-helm/standalone-participant-values.yaml --wait -helm install validator /splice-validator -n validator --version ${CHART_VERSION} -f splice-node/examples/sv-helm/validator-values.yaml -f splice-node/examples/sv-helm/standalone-validator-values.yaml --wait +helm install postgres |helm_repo_prefix|/splice-postgres -n validator --version ${CHART_VERSION} -f splice-node/examples/sv-helm/postgres-values-validator-participant.yaml --wait +helm install participant |helm_repo_prefix|/splice-participant -n validator --version ${CHART_VERSION} -f splice-node/examples/sv-helm/participant-values.yaml -f splice-node/examples/sv-helm/standalone-participant-values.yaml --wait +helm install validator |helm_repo_prefix|/splice-validator -n validator --version ${CHART_VERSION} -f splice-node/examples/sv-helm/validator-values.yaml -f splice-node/examples/sv-helm/standalone-validator-values.yaml --wait ``` Once this is running, you should be able to inspect the state of the cluster and observe pods running in the new namespace. A typical query might look as follows: @@ -384,6 +397,8 @@ Once this is running, you should be able to inspect the state of the cluster and Note also that `Pod` restarts may happen during bringup, particularly if all helm charts are deployed at the same time. For example, the `participant` cannot start until `postgres` is running. + + ## Configuring the Cluster Ingress The following routes should be configured in your cluster ingress controller. @@ -421,6 +436,8 @@ In order to install the reference charts, the following must be satisfied in you ### Installation Instructions + + Create a `cluster-ingress` namespace: @@ -453,9 +470,11 @@ This gateway terminates tls using the secret that you configured above, and expo using: ```bash -helm install cluster-ingress-validator /splice-cluster-ingress-runbook -n validator --version ${CHART_VERSION} -f splice-node/examples/sv-helm/validator-cluster-ingress-values.yaml +helm install cluster-ingress-validator |helm_repo_prefix|/splice-cluster-ingress-runbook -n validator --version ${CHART_VERSION} -f splice-node/examples/sv-helm/validator-cluster-ingress-values.yaml ``` + + ## Logging into the wallet UI After you deploy your ingress, open your browser at [https://wallet.validator.YOUR_HOSTNAME](https://wallet.validator.YOUR_HOSTNAME) and login using the credentials for the user that you configured as `validatorWalletUser` earlier. Once logged in one should see the transactions page. diff --git a/docs-main/global-synchronizer/production-operations/splice-metrics-overview.mdx b/docs-main/global-synchronizer/production-operations/splice-metrics-overview.mdx index 8f3108e6..86ba0e16 100644 --- a/docs-main/global-synchronizer/production-operations/splice-metrics-overview.mdx +++ b/docs-main/global-synchronizer/production-operations/splice-metrics-overview.mdx @@ -3,6 +3,9 @@ title: "Splice Metrics Overview" description: "Prometheus metrics exposed by Canton Network components and how to scrape them" --- +import { NetworkVariables } from '/snippets/components/version.mdx'; +import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; + {/* COPIED_START source="splice:docs/src/deployment/observability/metrics.rst" hash="88d7cba8" */} @@ -73,11 +76,16 @@ This trigger is disabled by default. As per the information in Adding ad-hoc con ## Grafana Dashboards -The release bundle ([Download Bundle](https://github.com/digital-asset/decentralized-canton-sync/releases/download/v0.6.3/0.6.3_splice-node.tar.gz)) contains a set of Grafana dashboards that are built based on the metrics above. These dashboards can be imported into a Grafana instance. The dashboards are built assuming a K8s deployment, and may need to be modified for other deployment types. The dashboards can be found under the `grafana-dashboards` folder in the release bundle. + + +The release bundle (|bundle_download_link|) contains a set of Grafana dashboards that are built based on the metrics above. These dashboards can be imported into a Grafana instance. The dashboards are built assuming a K8s deployment, and may need to be modified for other deployment types. The dashboards can be found under the `grafana-dashboards` folder in the release bundle. The dashboards are built using queries specific for Prometheus native histograms. + + + {/* COPIED_END */} \ No newline at end of file diff --git a/docs-main/global-synchronizer/production-operations/validator-disaster-recovery.mdx b/docs-main/global-synchronizer/production-operations/validator-disaster-recovery.mdx index 46478c20..5cefbe05 100644 --- a/docs-main/global-synchronizer/production-operations/validator-disaster-recovery.mdx +++ b/docs-main/global-synchronizer/production-operations/validator-disaster-recovery.mdx @@ -12,6 +12,9 @@ import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorDisasterR import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorDisasterRecoveryNone373 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-373.mdx"; import ExternalSpliceMainSpliceRstCodeDocsSrcValidatorOperatorValidatorDisasterRecoveryNone405 from "/snippets/external/splice/main/splice-rst-code-docs-src-validator-operator-validator-disaster-recovery-none-405.mdx"; +import { NetworkVariables } from '/snippets/components/version.mdx'; +import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; + {/* COPIED_START source="splice:docs/src/validator_operator/validator_disaster_recovery.rst" hash="48572fc5" */} @@ -163,6 +166,8 @@ In some cases you might want to force the migration attempt for a set of parties #### Troubleshooting failed ACS imports + + If you still observe issues, in particular you observe `ACS_COMMITMENT_MISMATCH` warnings in your participant logs, something has likely gone wrong while importing the active contracts of at least one of the parties hosted on your node. Another common symptom (in case the validator party is affected) is that your your validator initialization fails with a `Unknown secret` error and your validator logs contain a `ValidatorLicense not found` message. To address a failed `ACS` import, you can usually: 1. First make sure all parties are hosted on the same node. The most common case is that either the parties are still on the old node with the old participant ID or they have been migrated to the new node. You can check by opening a Canton console to any participant on the network (i.e., you can also ask another validator or SV operator for this information) and running the following query where \ is the part after the `::` in, for example, your validator party ID. @@ -191,7 +196,7 @@ If you still observe issues, in particular you observe `ACS_COMMITMENT_MISMATCH` Run from a regular shell (same working directory like the one you started your Canton console from): ```bash - curl -sSL --fail-with-body 'https://scan.sv-1.unknown_cluster.global.canton.network.sync.global/api/scan/v0/acs/YOUR_PARTY_ID' -H 'Content-Type: application/json' | jq -r .acs_snapshot | base64 -d > acs_snapshot + curl -sSL --fail-with-body '|gsf_scan_url|/api/scan/v0/acs/YOUR_PARTY_ID' -H 'Content-Type: application/json' | jq -r .acs_snapshot | base64 -d > acs_snapshot ``` From the Canton console: @@ -204,6 +209,8 @@ If you still observe issues, in particular you observe `ACS_COMMITMENT_MISMATCH` 3. If the previous step failed or you chose not to attempt it, you can retry the migration procedure with a fresh participant. If your parties are still on the original node that you took identities backup from, you can use your existing backup. If your parties have been migrated to the new node already, take a new identities dump from the new node. If the new node is in a state where you cannot take a fresh dump, use the old dump but edit the `id` field to the participant ID of the new node. You can obtain the `id` in the correct format by, for example, running `participant.id.toProtoPrimitive` in a Canton console to the participant. You can now take down the node to which you originally tried to restore and try the restore procedure again with your adjusted dump on a fresh node with a different participant ID prefix (i.e., a different `newParticipantIdentifier` / `<new_participant_id>` depending on your deployment model). + + #### Troubleshooting rejected topology snapshots In rare cases, the re-onboarding process may fail at the `ImportTopologySnapshot` step because an `OwnerToKeyMapping` for the old participant ID has an insufficient number of signatures in the topology snapshot. This only affects validators that were originally onboarded on Splice 0.4.1 or earlier, which used a Canton version that did not require the mapped keys to co-sign `OwnerToKeyMapping` transactions. You can identify this issue by looking for the following messages in your participant logs: @@ -232,6 +239,8 @@ To work around this, follow these steps: ## Recover the Coin balance of an external party + + For a party relying on external signing, a similar procedure can be used to recover its coin balance in case the validator originally hosting it becomes unusable for whatever reason. @@ -266,7 +275,7 @@ We can now query CC Scan to get the active contract set (ACS) for a party and wr ```bash // Make sure to adjust YOUR_VALID_FROM to the time you got from the previous query and YOUR_PARY_ID -curl -sSL --fail-with-body 'https://scan.sv-1.unknown_cluster.global.canton.network.sync.global/api/scan/v0/acs/YOUR_PARTY_ID?record_time=YOUR_VALID_FROM' -H 'Content-Type: application/json' | jq -r .acs_snapshot | base64 -d > acs_snapshot +curl -sSL --fail-with-body '|gsf_scan_url|/api/scan/v0/acs/YOUR_PARTY_ID?record_time=YOUR_VALID_FROM' -H 'Content-Type: application/json' | jq -r .acs_snapshot | base64 -d > acs_snapshot ``` Lastly, we can import the ACS: @@ -275,6 +284,8 @@ Lastly, we can import the ACS: The party is now hosted on the node and can participat in transactions. The last step is to setup the necessary contracts to allow the validator automation to renew transfer preapprovals and complete transfer commands. To do so, go through the same flow used for initial onboarding of the party, i.e., `/v0/admin/external-party/setup-proposal`, `/v0/admin/external-party/setup-proposal/prepare-accept` and `/v0/admin/external-party/setup-proposal/submit-accept`. For details refer to the docs for the validator external signing API. + + ## Roll Forward Logical Synchronizer Upgrade In case the SVs communicate that they recover from a loss of the physical synchronizer, they will communicate the `newPhysicalSynchronizerId` and the `sequencerSuccessors`. diff --git a/docs-main/global-synchronizer/reference/canton-console-reference.mdx b/docs-main/global-synchronizer/reference/canton-console-reference.mdx index abc0f5a8..c9387181 100644 --- a/docs-main/global-synchronizer/reference/canton-console-reference.mdx +++ b/docs-main/global-synchronizer/reference/canton-console-reference.mdx @@ -7,6 +7,9 @@ import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConsoleAccessNone40 from import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConsoleAccessBash166 from "/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-bash-166.mdx"; import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConsoleAccessBash174 from "/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-bash-174.mdx"; +import { NetworkVariables } from '/snippets/components/version.mdx'; +import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; + {/* COPIED_START source="splice:docs/src/deployment/console_access.rst" hash="bccf3653" */} @@ -46,53 +49,53 @@ Welcome to Canton! 4. Run the docker command - > ```bash - > docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf /canton:0.6.3 --console - > ``` - > - -> - >
- > - > Important - > - > - - > - > If you run the participant using the docker compose setup the docker command must be run with the docker network used by the participant. Adjust the configuration to connect to the participant container: - > - > ``` - > canton { - > remote-participants { - > participant { - > admin-api { - > port = 5002 - > address = participant - > } - > ledger-api { - > port = 5001 - > address = participant - > } - > token = "" - > } - > } - > features.enable-preview-commands = yes - > features.enable-testing-commands = yes - > features.enable-repair-commands = yes - > } - > ``` - > - > Running docker with the default network (`splice-validator`): - > - > ```bash - > ``` - > - > docker run -it --rm --network splice-validator -v \$(pwd)/console.conf:/app/app.conf /canton:0.6.3 --console - > - >
+ + +```bash +docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf |docker_repo_prefix|/canton:|version_literal| --console +``` + + + + +If you run the participant using the docker compose setup the docker command must be run with the docker network used by the participant. Adjust the configuration to connect to the participant container: + +```text +canton { + remote-participants { + participant { + admin-api { + port = 5002 + address = participant + } + ledger-api { + port = 5001 + address = participant + } + token = "" + } + } + features.enable-preview-commands = yes + features.enable-testing-commands = yes + features.enable-repair-commands = yes +} +``` + +Running docker with the default network (`splice-validator`): + + + +```bash +docker run -it --rm --network splice-validator -v \$(pwd)/console.conf:/app/app.conf |docker_repo_prefix|/canton:|version_literal| --console +``` + + + ## Sequencer console + + 1. Ensure you can access the sequencer's ports 5008 and 5009 2. Add the configuration to a local file `console.conf` @@ -120,11 +123,15 @@ Welcome to Canton! 3. Run the docker command > ```bash - > docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf /canton:0.6.3 --console + > docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf |docker_repo_prefix|/canton:|version_literal| --console > ``` + + ## Mediator console + + 1. Ensure you can access the mediator's port 5007 2. Add the configuration to a local file `console.conf` @@ -148,9 +155,11 @@ Welcome to Canton! 3. Run the docker command > ```bash - > docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf /canton:0.6.3 --console + > docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf |docker_repo_prefix|/canton:|version_literal| --console > ``` + + ## Access in a K8s cluster In a K8s cluster you can use a debug pod to access the console directly from the cluster. diff --git a/docs-main/global-synchronizer/understand/local-testing.mdx b/docs-main/global-synchronizer/understand/local-testing.mdx index 55d835e3..9bebaee2 100644 --- a/docs-main/global-synchronizer/understand/local-testing.mdx +++ b/docs-main/global-synchronizer/understand/local-testing.mdx @@ -3,6 +3,9 @@ title: "Local Testing" description: "Docker-Compose based deployment of a local Canton Network for development and testing" --- +import { NetworkVariables } from '/snippets/components/version.mdx'; +import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; + {/* COPIED_START source="splice:docs/src/app_dev/testing/localnet.rst" hash="a3270359" */} @@ -21,10 +24,12 @@ Designed primarily for development and testing, LocalNet is not intended for pro ## Setup -1. Download the release artifacts from the [Download Bundle](https://github.com/digital-asset/decentralized-canton-sync/releases/download/v0.6.3/0.6.3_splice-node.tar.gz) link, and extract the bundle: + + +1. Download the release artifacts from the |bundle_download_link| link, and extract the bundle: > ```bash - > tar xzvf 0.6.3_splice-node.tar.gz + > tar xzvf |version|_splice-node.tar.gz > ``` The extracted docker compose files defining LocalNet are located in `splice-node/docker-compose/localnet`. @@ -38,7 +43,7 @@ Designed primarily for development and testing, LocalNet is not intended for pro > ```bash > export LOCALNET_DIR=$PWD/splice-node/docker-compose/localnet - > export IMAGE_TAG=0.6.3 + > |image_tag_set_plain| > ``` 3. See `use-localnet` for the commands to start, stop, inspect, and administrate the LocalNet nodes. @@ -53,6 +58,8 @@ Optional: use the following additional environment variables to configure: Resource constraints for containers can be configured via: - **LOCALNET_DIR/resource-constraints.yaml** + + ## Exposed Ports The following section details the ports used by various services. The default database port is **DB_PORT=5432**. diff --git a/docs-main/overview/reference/splice-wallet-reference.mdx b/docs-main/overview/reference/splice-wallet-reference.mdx index c468f32d..e78dbfc0 100644 --- a/docs-main/overview/reference/splice-wallet-reference.mdx +++ b/docs-main/overview/reference/splice-wallet-reference.mdx @@ -3,6 +3,9 @@ title: "Splice Wallet Reference" description: "Reference documentation for the built-in Splice wallet, covering Canton Coin operations, automation, transfer workflows, APIs, and UTXO management" --- +import { NetworkVariables } from '/snippets/components/version.mdx'; +import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; + The Splice Wallet is the built-in wallet component of every validator node on the Canton Network. It provides Canton Coin (CC) management for parties hosted on that validator, including a web UI, background automation, and programmatic APIs. ## Wallet UI @@ -38,14 +41,18 @@ This section was copied from existing reviewed documentation. Reviewers: Skip this section. Remove markers after final approval. + + Contrary to other assets like Eth or Bitcoin, Canton Coin requires a party to explicitly agree to hold Canton Coin. This includes explicitly agreeing to any incoming transfers. Parties that are ok with accepting incoming Canton Coin transfers from any sender, can setup a `TransferPreapproval`. This allows any party to send Canton Coin to the party that setup the `TransferPreapproval`. Note that this only applies to transfers of Canton Coin but not to other assets. Other assets may provide their own variant of a preapproval which needs to be setup separately or they may require approval of each incoming transfer individually. -To ensure that the super validators don't have to store and serve `TransferPreapprovals` contracts for parties that are no longer active or malicious parties cannot spam them, a preapproval has a limited lifetime until it expires and a fee must be burned proportional to the lifetime when creating the preapproval. The fee is controlled by the super validators through the `transferPreapprovalFee` parameter. The current value can be observed in CC Scan at /dso and defaults to \$1/year. +To ensure that the super validators don't have to store and serve `TransferPreapprovals` contracts for parties that are no longer active or malicious parties cannot spam them, a preapproval has a limited lifetime until it expires and a fee must be burned proportional to the lifetime when creating the preapproval. The fee is controlled by the super validators through the `transferPreapprovalFee` parameter. The current value can be observed in CC Scan at |gsf_scan_url|/dso and defaults to \$1/year. Each preapproval has two parties: The `receiver` party that approves incoming transfers and the `provider` party. The provider party is responsible for paying the fee and renewing the preapproval when it gets close to its expiry date. In return, the `provider` party will be the app provider on all incoming transfers that use this preapproval and get the app rewards for it. The `provider` party must not necessarily be hosted on the same node as the `receiver` party although that is the most common setup in practice. + + ## {/* COPIED_END */} diff --git a/docs-main/sdks-tools/api-reference/splice-daml-apis.mdx b/docs-main/sdks-tools/api-reference/splice-daml-apis.mdx index 2de4efbc..26d93a0a 100644 --- a/docs-main/sdks-tools/api-reference/splice-daml-apis.mdx +++ b/docs-main/sdks-tools/api-reference/splice-daml-apis.mdx @@ -3,6 +3,9 @@ title: "Splice Daml APIs" description: "The Daml choice-based APIs exposed by the Splice DARs" --- +import { NetworkVariables } from '/snippets/components/version.mdx'; +import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; + {/* COPIED_START source="splice:docs/src/app_dev/daml_api/index.rst" hash="812c336f" */} @@ -63,11 +66,13 @@ Earning featured app rewards for direct transfers of non-CC tokens to your walle ### How to use the WalletUserProxy to earn featured app rewards + + Assuming you are a wallet provider that runs a validator node for your users, you can use the `WalletUserProxy` template to get credit for the activity of your wallet users as follows. 1. Apply for a featured app right for your wallet provider party, as explained on `how_to_become_a_featured_application`. -2. Extract the latest version of the `splice-util-featured-app-proxies.dar` file from the release bundle ([Download Bundle](https://github.com/digital-asset/decentralized-canton-sync/releases/download/v0.6.3/0.6.3_splice-node.tar.gz)). +2. Extract the latest version of the `splice-util-featured-app-proxies.dar` file from the release bundle (|bundle_download_link|). 3. Upload the extracted `.dar` file to your validator node. @@ -83,6 +88,8 @@ Assuming you are a wallet provider that runs a validator node for your users, yo > > See this [Daml test script](https://github.com/canton-network/splice/blob/main/daml/splice-util-featured-app-proxies-test/daml/Splice/Util/FeaturedApp/IntegrationTests/TestWalletUserProxy.daml#L47) for a complete example of how to construct the choice. + + ## Additional Splice Daml APIs The app provider of an asset registry is not necessarily the same as the party controlling the minting and burning of tokens. A typical example are tokens that are bridged from another network. The following API targets that use-case; and thus enables to decouple the upgrade cycles of an asset registry from the ones of the bridging app. diff --git a/docs-main/sdks-tools/api-reference/splice-http-apis.mdx b/docs-main/sdks-tools/api-reference/splice-http-apis.mdx index ad8e492c..fe526377 100644 --- a/docs-main/sdks-tools/api-reference/splice-http-apis.mdx +++ b/docs-main/sdks-tools/api-reference/splice-http-apis.mdx @@ -3,6 +3,9 @@ title: "Splice HTTP APIs" description: "The HTTP REST APIs exposed by the Scan, Validator, and SV applications" --- +import { NetworkVariables } from '/snippets/components/version.mdx'; +import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; + {/* COPIED_START source="splice:docs/src/app_dev/overview/splice_app_apis.rst" hash="10312958" */} @@ -34,7 +37,11 @@ Some of the Splice apps also define additional HTTP APIs that are considered int ## OpenAPI Conventions -The HTTP APIs of Splice apps are documented using [OpenAPI specifications](https://www.openapis.org/). You can download the OpenAPI specification for Splice's applications here: [Download OpenAPI specs](https://github.com/digital-asset/decentralized-canton-sync/releases/download/v0.6.3/0.6.3_openapi.tar.gz). + + +The HTTP APIs of Splice apps are documented using [OpenAPI specifications](https://www.openapis.org/). You can download the OpenAPI specification for Splice's applications here: |openapi_download_link|. + + ### API Stability diff --git a/docs-main/sdks-tools/api-reference/splice-scan-bulk-data-api.mdx b/docs-main/sdks-tools/api-reference/splice-scan-bulk-data-api.mdx index 29135e7d..3f9c0fba 100644 --- a/docs-main/sdks-tools/api-reference/splice-scan-bulk-data-api.mdx +++ b/docs-main/sdks-tools/api-reference/splice-scan-bulk-data-api.mdx @@ -3,6 +3,9 @@ title: "Scan Bulk Data API" description: "Full update history and ACS snapshots from the SV participant node" --- +import { NetworkVariables } from '/snippets/components/version.mdx'; +import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; + {/* COPIED_START source="splice:docs/src/app_dev/scan_api/scan_bulk_data_api.rst" hash="2753bd48" */} @@ -32,6 +35,8 @@ The Bulk Data Scan API provides access to the update history and ACS snapshots a ## Open API Specification + + The `scan_openapi` describes the Scan API in detail. The below table provides a quick overview of the endpoints that the Scan Bulk Data API consists of: | Endpoint | Description | @@ -45,11 +50,13 @@ If you would rather read the yaml Open API specification file directly, this can Example URLs for accessing the Scan Bulk Data API are: -- [https://scan.sv-1.unknown_cluster.global.canton.network.sync.global/api/scan/v2/updates](https://scan.sv-1.unknown_cluster.global.canton.network.sync.global/api/scan/v2/updates) -- [https://scan.sv-1.unknown_cluster.global.canton.network.sync.global/api/scan/v0/state/acs/snapshot-timestamp](https://scan.sv-1.unknown_cluster.global.canton.network.sync.global/api/scan/v0/state/acs/snapshot-timestamp) +- [|gsf_scan_url|/api/scan/v2/updates](|gsf_scan_url|/api/scan/v2/updates) +- [|gsf_scan_url|/api/scan/v0/state/acs/snapshot-timestamp](|gsf_scan_url|/api/scan/v0/state/acs/snapshot-timestamp) Please note the `api/scan` prefix in the URLs, which is the base path for the Scan API. + + ### Updates An update can be one of two things: @@ -337,12 +344,14 @@ The ACS snapshots are periodically taken and stored in the Scan App. This endpoi #### GET /v0/state/acs/snapshot-timestamp + + The /v0/state/acs/snapshot-timestamp endpoint returns the timestamp of the most recent snapshot before the given date, for the given `migration_id`. Specify `migration_id = 0` for the beginning of the network. The returned timestamp corresponds to the record time of the last transaction in the snapshot. An example request to get the timestamp of the most recent snapshot before a given date is shown below: ```bash -curl https://scan.sv-1.unknown_cluster.global.canton.network.sync.global/api/scan/v0/state/acs/snapshot-timestamp\?before\="2025-02-12T00:00:00.000000Z"\&migration_id\=4 +curl |gsf_scan_url|/api/scan/v0/state/acs/snapshot-timestamp\?before\="2025-02-12T00:00:00.000000Z"\&migration_id\=4 ``` The response returns the timestamp of the most recent snapshot before the given date: @@ -353,6 +362,8 @@ The response returns the timestamp of the most recent snapshot before the given } ``` + + #### POST /v0/state/acs The /v0/state/acs endpoint returns the ACS in creation date ascending order, paged, for a given migration id and record time. Post an `AcsRequest` with a `migration_id`, `record_time` and `page_size` to get a page of contracts. An optional `templates` field filters the ACS by a set of `template_id`s. diff --git a/docs-main/sdks-tools/api-reference/splice-scan-gs-connectivity-api.mdx b/docs-main/sdks-tools/api-reference/splice-scan-gs-connectivity-api.mdx index c6a4394c..e75a2822 100644 --- a/docs-main/sdks-tools/api-reference/splice-scan-gs-connectivity-api.mdx +++ b/docs-main/sdks-tools/api-reference/splice-scan-gs-connectivity-api.mdx @@ -3,6 +3,9 @@ title: "Scan Global Synchronizer Connectivity API" description: "Discover Scan and sequencer endpoints across all SVs" --- +import { NetworkVariables } from '/snippets/components/version.mdx'; +import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; + {/* COPIED_START source="splice:docs/src/app_dev/scan_api/scan_global_synchronizer_connectivity_api.rst" hash="05c0a1f9" */} @@ -15,7 +18,9 @@ Splice network applications and validators need to be able to connect to multipl ## Listing all SV Scans -Every Scan can list all approved SV scans connected to the network. For example, query from /v0/scans from [https://scan.sv-1.unknown_cluster.global.canton.network.sync.global](https://scan.sv-1.unknown_cluster.global.canton.network.sync.global), and the response will be something like + + +Every Scan can list all approved SV scans connected to the network. For example, query from /v0/scans from [|gsf_scan_url|](|gsf_scan_url|), and the response will be something like ```json { @@ -41,6 +46,8 @@ Every Scan can list all approved SV scans connected to the network. For example, `scans` is a list of synchronizer IDs, each with an associated list of SVs and their Scan base URLs. In this case, `Global-Synchronizer-Foundation` matches the originally-used Scan. Take any of these `publicUrl`s and query `/api/scan/v0/scans`, and the same set will be returned. + + ## Listing all SV Sequencers Likewise, Canton sequencers for all approved SVs are published by every Scan. For example, query from /v0/dso-sequencers, and the result will be something like diff --git a/docs-main/snippets/components/version.mdx b/docs-main/snippets/components/version.mdx index edaa4f8b..17c7b457 100644 --- a/docs-main/snippets/components/version.mdx +++ b/docs-main/snippets/components/version.mdx @@ -1,7 +1,162 @@ export const VersionOption = ({ children }) => <>{children}; +export const networkOrder = ['mainnet', 'testnet', 'devnet']; +export const deploymentNetworkOrder = ['devnet', 'testnet', 'mainnet']; + +export const tokenPattern = /\|([A-Za-z0-9_]+)\|/g; + +export const tokenTextValue = (value) => { + if (value && typeof value === 'object' && 'href' in value) { + return value.href; + } + return value ?? null; +}; + +export const replacementForToken = (token, substitutions) => tokenTextValue(substitutions?.[token]); + +export const replaceStringProp = (value, substitutions) => { + if (typeof value !== 'string') { + return value; + } + return value.replace(tokenPattern, (match, token) => replacementForToken(token, substitutions) ?? match); +}; + +export const replaceTextNode = (value, substitutions, keyPrefix = 'token') => { + if (typeof value !== 'string') { + return value; + } + + const pieces = []; + let lastIndex = 0; + let match; + tokenPattern.lastIndex = 0; + + while ((match = tokenPattern.exec(value)) !== null) { + const [rawToken, token] = match; + const replacement = substitutions?.[token]; + if (!replacement) { + continue; + } + + if (match.index > lastIndex) { + pieces.push(value.slice(lastIndex, match.index)); + } + + if (replacement && typeof replacement === 'object' && replacement.href) { + pieces.push( +
+ {replacement.label ?? replacement.href} + + ); + } else { + pieces.push(String(replacement)); + } + lastIndex = match.index + rawToken.length; + } + + if (!pieces.length) { + return value; + } + + if (lastIndex < value.length) { + pieces.push(value.slice(lastIndex)); + } + + return pieces; +}; + +export const replaceNode = (node, substitutions, keyPrefix = 'node') => { + if (typeof node === 'string') { + return replaceTextNode(node, substitutions, keyPrefix); + } + + if (Array.isArray(node)) { + return node.map((child, index) => replaceNode(child, substitutions, `${keyPrefix}-${index}`)); + } + + if (!React.isValidElement(node)) { + return node; + } + + const props = {}; + for (const [name, value] of Object.entries(node.props ?? {})) { + if (name === 'children') { + continue; + } + props[name] = typeof value === 'string' ? replaceStringProp(value, substitutions) : value; + } + + return React.cloneElement( + node, + props, + React.Children.map(node.props.children, (child, index) => + replaceNode(child, substitutions, `${keyPrefix}-${index}`) + ) + ); +}; + +export const NetworkVariables = ({ + children, + title = 'Network-specific values', + description, + defaultNetwork = 'devnet', + networkData = {}, +}) => { + const options = deploymentNetworkOrder.filter((networkKey) => networkData[networkKey]?.substitutions); + const defaultIndex = Math.max(0, options.indexOf(defaultNetwork)); + const [activeIndex, setActiveIndex] = React.useState(defaultIndex); + const activeNetwork = options[activeIndex] ?? options[0]; + const activeData = networkData[activeNetwork]; + + if (!activeData) { + return null; + } + + const label = (networkKey) => { + const network = networkData[networkKey]; + const version = network?.versions?.splice; + return version ? `${network?.name ?? networkKey} (${version})` : network?.name ?? networkKey; + }; + + return ( +
+ {(title || description) && ( +
+ {title &&
{title}
} + {description &&
{description}
} +
+ )} +
+ {options.map((networkKey, index) => { + const isActive = index === activeIndex; + return ( + + ); + })} +
+
+ {React.Children.map(children, (child, index) => + replaceNode(child, activeData.substitutions, `network-${activeNetwork}-${index}`) + )} +
+
+ ); +}; + export const Version = ({ children, title, description, defaultLabel, networkData = {} }) => { - const networkOrder = ['mainnet', 'testnet', 'devnet']; const networksForVersion = (version) => { return networkOrder.filter((networkKey) => networkData[networkKey]?.versions?.splice === version); }; diff --git a/docs-main/snippets/generated/version-dashboard-data.mdx b/docs-main/snippets/generated/version-dashboard-data.mdx index f0422cc3..be9e2138 100644 --- a/docs-main/snippets/generated/version-dashboard-data.mdx +++ b/docs-main/snippets/generated/version-dashboard-data.mdx @@ -23,6 +23,31 @@ export const networkData = { releaseUrl: 'https://github.com/canton-network/splice/releases/tag/0.5.18', }, endpoint: 'scan.sv-1.global.canton.network.sync.global', + substitutions: { + splice_cluster: 'main', + da_hostname: 'global.canton.network.digitalasset.com', + gsf_sv_url: 'https://sv.sv-1.global.canton.network.sync.global', + generic_sv_url: 'https://sv.sv-1.global.canton.network.YOUR_SV_SPONSOR', + gsf_scan_url: 'https://scan.sv-1.global.canton.network.sync.global', + generic_scan_url: 'https://scan.sv-1.global.canton.network.YOUR_SV_SPONSOR', + gsf_sequencer_url: 'https://sequencer-MIGRATION_ID.sv-1.global.canton.network.sync.global', + version: '0.5.18', + version_literal: '0.5.18', + chart_version_literal: '0.5.18', + chart_version_set: 'export CHART_VERSION=0.5.18', + image_tag_set: 'export IMAGE_TAG=0.5.18', + image_tag_set_plain: 'export IMAGE_TAG=0.5.18', + bundle_download_link: { + label: 'Download Bundle', + href: 'https://github.com/digital-asset/decentralized-canton-sync/releases/download/v0.5.18/0.5.18_splice-node.tar.gz', + }, + openapi_download_link: { + label: 'Download OpenAPI specs', + href: 'https://github.com/digital-asset/decentralized-canton-sync/releases/download/v0.5.18/0.5.18_openapi.tar.gz', + }, + helm_repo_prefix: 'oci://ghcr.io/digital-asset/decentralized-canton-sync/helm', + docker_repo_prefix: 'ghcr.io/digital-asset/decentralized-canton-sync/docker', + }, }, testnet: { name: 'TestNet', @@ -48,6 +73,31 @@ export const networkData = { releaseUrl: 'https://github.com/canton-network/splice/releases/tag/0.5.18', }, endpoint: 'scan.sv-1.test.global.canton.network.sync.global', + substitutions: { + splice_cluster: 'test', + da_hostname: 'test.global.canton.network.digitalasset.com', + gsf_sv_url: 'https://sv.sv-1.test.global.canton.network.sync.global', + generic_sv_url: 'https://sv.sv-1.test.global.canton.network.YOUR_SV_SPONSOR', + gsf_scan_url: 'https://scan.sv-1.test.global.canton.network.sync.global', + generic_scan_url: 'https://scan.sv-1.test.global.canton.network.YOUR_SV_SPONSOR', + gsf_sequencer_url: 'https://sequencer-MIGRATION_ID.sv-1.test.global.canton.network.sync.global', + version: '0.5.18', + version_literal: '0.5.18', + chart_version_literal: '0.5.18', + chart_version_set: 'export CHART_VERSION=0.5.18', + image_tag_set: 'export IMAGE_TAG=0.5.18', + image_tag_set_plain: 'export IMAGE_TAG=0.5.18', + bundle_download_link: { + label: 'Download Bundle', + href: 'https://github.com/digital-asset/decentralized-canton-sync/releases/download/v0.5.18/0.5.18_splice-node.tar.gz', + }, + openapi_download_link: { + label: 'Download OpenAPI specs', + href: 'https://github.com/digital-asset/decentralized-canton-sync/releases/download/v0.5.18/0.5.18_openapi.tar.gz', + }, + helm_repo_prefix: 'oci://ghcr.io/digital-asset/decentralized-canton-sync/helm', + docker_repo_prefix: 'ghcr.io/digital-asset/decentralized-canton-sync/docker', + }, }, devnet: { name: 'DevNet', @@ -73,5 +123,30 @@ export const networkData = { releaseUrl: 'https://github.com/canton-network/splice/releases/tag/0.6.3', }, endpoint: 'scan.sv-1.dev.global.canton.network.sync.global', + substitutions: { + splice_cluster: 'dev', + da_hostname: 'dev.global.canton.network.digitalasset.com', + gsf_sv_url: 'https://sv.sv-1.dev.global.canton.network.sync.global', + generic_sv_url: 'https://sv.sv-1.dev.global.canton.network.YOUR_SV_SPONSOR', + gsf_scan_url: 'https://scan.sv-1.dev.global.canton.network.sync.global', + generic_scan_url: 'https://scan.sv-1.dev.global.canton.network.YOUR_SV_SPONSOR', + gsf_sequencer_url: 'https://sequencer-MIGRATION_ID.sv-1.dev.global.canton.network.sync.global', + version: '0.6.3', + version_literal: '0.6.3', + chart_version_literal: '0.6.3', + chart_version_set: 'export CHART_VERSION=0.6.3', + image_tag_set: 'export IMAGE_TAG=0.6.3', + image_tag_set_plain: 'export IMAGE_TAG=0.6.3', + bundle_download_link: { + label: 'Download Bundle', + href: 'https://github.com/digital-asset/decentralized-canton-sync/releases/download/v0.6.3/0.6.3_splice-node.tar.gz', + }, + openapi_download_link: { + label: 'Download OpenAPI specs', + href: 'https://github.com/digital-asset/decentralized-canton-sync/releases/download/v0.6.3/0.6.3_openapi.tar.gz', + }, + helm_repo_prefix: 'oci://ghcr.io/digital-asset/decentralized-canton-sync/helm', + docker_repo_prefix: 'ghcr.io/digital-asset/decentralized-canton-sync/docker', + }, }, } diff --git a/scripts/helpers/updateVersionDashboardData.js b/scripts/helpers/updateVersionDashboardData.js index bb1d7bc6..53dd9809 100644 --- a/scripts/helpers/updateVersionDashboardData.js +++ b/scripts/helpers/updateVersionDashboardData.js @@ -93,6 +93,7 @@ function buildNetworkData(repoConfig, metaConfig) { network.versions = versions; network.advanced = repoVersion.advanced; network.endpoint = repoVersion.endpoint; + network.substitutions = repoVersion.substitutions || {}; networkData[networkKey] = network; } @@ -137,6 +138,7 @@ function generateMDX(networkData) { lines.push(` },`); lines.push(` endpoint: ${formatValue(network.endpoint, 2)},`); + lines.push(` substitutions: ${formatValue(network.substitutions, 2)},`); lines.push(` },`); } From 54b9049dcd4a16b37c11943acd27b319635b16b6 Mon Sep 17 00:00:00 2001 From: danielporterda Date: Wed, 13 May 2026 14:24:14 -0400 Subject: [PATCH 06/15] Fix network variable component runtime scope --- docs-main/snippets/components/version.mdx | 173 +++++++++++----------- 1 file changed, 83 insertions(+), 90 deletions(-) diff --git a/docs-main/snippets/components/version.mdx b/docs-main/snippets/components/version.mdx index 17c7b457..3227d236 100644 --- a/docs-main/snippets/components/version.mdx +++ b/docs-main/snippets/components/version.mdx @@ -1,107 +1,99 @@ export const VersionOption = ({ children }) => <>{children}; -export const networkOrder = ['mainnet', 'testnet', 'devnet']; -export const deploymentNetworkOrder = ['devnet', 'testnet', 'mainnet']; - -export const tokenPattern = /\|([A-Za-z0-9_]+)\|/g; - -export const tokenTextValue = (value) => { - if (value && typeof value === 'object' && 'href' in value) { - return value.href; - } - return value ?? null; -}; - -export const replacementForToken = (token, substitutions) => tokenTextValue(substitutions?.[token]); - -export const replaceStringProp = (value, substitutions) => { - if (typeof value !== 'string') { - return value; - } - return value.replace(tokenPattern, (match, token) => replacementForToken(token, substitutions) ?? match); -}; - -export const replaceTextNode = (value, substitutions, keyPrefix = 'token') => { - if (typeof value !== 'string') { - return value; - } - - const pieces = []; - let lastIndex = 0; - let match; - tokenPattern.lastIndex = 0; - - while ((match = tokenPattern.exec(value)) !== null) { - const [rawToken, token] = match; - const replacement = substitutions?.[token]; - if (!replacement) { - continue; +export const NetworkVariables = ({ + children, + title = 'Network-specific values', + description, + defaultNetwork = 'devnet', + networkData = {}, +}) => { + const deploymentNetworkOrder = ['devnet', 'testnet', 'mainnet']; + const tokenPattern = /\|([A-Za-z0-9_]+)\|/g; + const tokenTextValue = (value) => { + if (value && typeof value === 'object' && 'href' in value) { + return value.href; } - - if (match.index > lastIndex) { - pieces.push(value.slice(lastIndex, match.index)); + return value ?? null; + }; + const replacementForToken = (token, substitutions) => tokenTextValue(substitutions?.[token]); + const replaceStringProp = (value, substitutions) => { + if (typeof value !== 'string') { + return value; } - - if (replacement && typeof replacement === 'object' && replacement.href) { - pieces.push( - - {replacement.label ?? replacement.href} - - ); - } else { - pieces.push(String(replacement)); + return value.replace(tokenPattern, (match, token) => replacementForToken(token, substitutions) ?? match); + }; + const replaceTextNode = (value, substitutions, keyPrefix = 'token') => { + if (typeof value !== 'string') { + return value; } - lastIndex = match.index + rawToken.length; - } - if (!pieces.length) { - return value; - } - - if (lastIndex < value.length) { - pieces.push(value.slice(lastIndex)); - } + const pieces = []; + let lastIndex = 0; + let match; + tokenPattern.lastIndex = 0; + + while ((match = tokenPattern.exec(value)) !== null) { + const [rawToken, token] = match; + const replacement = substitutions?.[token]; + if (!replacement) { + continue; + } + + if (match.index > lastIndex) { + pieces.push(value.slice(lastIndex, match.index)); + } + + if (replacement && typeof replacement === 'object' && replacement.href) { + pieces.push( + + {replacement.label ?? replacement.href} + + ); + } else { + pieces.push(String(replacement)); + } + lastIndex = match.index + rawToken.length; + } - return pieces; -}; + if (!pieces.length) { + return value; + } -export const replaceNode = (node, substitutions, keyPrefix = 'node') => { - if (typeof node === 'string') { - return replaceTextNode(node, substitutions, keyPrefix); - } + if (lastIndex < value.length) { + pieces.push(value.slice(lastIndex)); + } - if (Array.isArray(node)) { - return node.map((child, index) => replaceNode(child, substitutions, `${keyPrefix}-${index}`)); - } + return pieces; + }; + const replaceNode = (node, substitutions, keyPrefix = 'node') => { + if (typeof node === 'string') { + return replaceTextNode(node, substitutions, keyPrefix); + } - if (!React.isValidElement(node)) { - return node; - } + if (Array.isArray(node)) { + return node.map((child, index) => replaceNode(child, substitutions, `${keyPrefix}-${index}`)); + } - const props = {}; - for (const [name, value] of Object.entries(node.props ?? {})) { - if (name === 'children') { - continue; + if (!React.isValidElement(node)) { + return node; } - props[name] = typeof value === 'string' ? replaceStringProp(value, substitutions) : value; - } - return React.cloneElement( - node, - props, - React.Children.map(node.props.children, (child, index) => - replaceNode(child, substitutions, `${keyPrefix}-${index}`) - ) - ); -}; + const props = {}; + for (const [name, value] of Object.entries(node.props ?? {})) { + if (name === 'children') { + continue; + } + props[name] = typeof value === 'string' ? replaceStringProp(value, substitutions) : value; + } -export const NetworkVariables = ({ - children, - title = 'Network-specific values', - description, - defaultNetwork = 'devnet', - networkData = {}, -}) => { + return React.cloneElement( + node, + props, + React.Children.map(node.props.children, (child, index) => + replaceNode(child, substitutions, `${keyPrefix}-${index}`) + ) + ); + }; const options = deploymentNetworkOrder.filter((networkKey) => networkData[networkKey]?.substitutions); const defaultIndex = Math.max(0, options.indexOf(defaultNetwork)); const [activeIndex, setActiveIndex] = React.useState(defaultIndex); @@ -157,6 +149,7 @@ export const NetworkVariables = ({ }; export const Version = ({ children, title, description, defaultLabel, networkData = {} }) => { + const networkOrder = ['mainnet', 'testnet', 'devnet']; const networksForVersion = (version) => { return networkOrder.filter((networkKey) => networkData[networkKey]?.versions?.splice === version); }; From e9b97cddc75015a3e671b42f7b803ae4ae279466 Mon Sep 17 00:00:00 2001 From: danielporterda Date: Wed, 13 May 2026 14:42:12 -0400 Subject: [PATCH 07/15] Show network labels for variable download links --- docs-main/snippets/components/version.mdx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs-main/snippets/components/version.mdx b/docs-main/snippets/components/version.mdx index 3227d236..8dd9a46d 100644 --- a/docs-main/snippets/components/version.mdx +++ b/docs-main/snippets/components/version.mdx @@ -44,9 +44,13 @@ export const NetworkVariables = ({ } if (replacement && typeof replacement === 'object' && replacement.href) { + const linkLabel = replacement.label ?? replacement.href; + const networkLabel = activeData?.versions?.splice + ? `${activeData.name ?? activeNetwork} ${activeData.versions.splice}` + : activeData?.name ?? activeNetwork; pieces.push( - {replacement.label ?? replacement.href} + {networkLabel ? `${linkLabel} (${networkLabel})` : linkLabel} ); } else { From 0fa48c7e1cdb49a544a2fef70c6eac920b22e2b8 Mon Sep 17 00:00:00 2001 From: danielporterda Date: Wed, 13 May 2026 14:44:41 -0400 Subject: [PATCH 08/15] Replace network tokens inside rendered code blocks --- docs-main/snippets/components/version.mdx | 28 ++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/docs-main/snippets/components/version.mdx b/docs-main/snippets/components/version.mdx index 8dd9a46d..77dbc550 100644 --- a/docs-main/snippets/components/version.mdx +++ b/docs-main/snippets/components/version.mdx @@ -103,6 +103,27 @@ export const NetworkVariables = ({ const [activeIndex, setActiveIndex] = React.useState(defaultIndex); const activeNetwork = options[activeIndex] ?? options[0]; const activeData = networkData[activeNetwork]; + const panelRef = React.useRef(null); + + React.useEffect(() => { + if (!activeData?.substitutions || !panelRef.current) { + return; + } + + const replaceTokenText = (value) => + value.replace(/\|([A-Za-z0-9_]+)\|/g, (match, token) => + replacementForToken(token, activeData.substitutions) ?? match + ); + + for (const codeRoot of panelRef.current.querySelectorAll('pre, code')) { + const walker = document.createTreeWalker(codeRoot, NodeFilter.SHOW_TEXT); + let textNode = walker.nextNode(); + while (textNode) { + textNode.nodeValue = replaceTokenText(textNode.nodeValue); + textNode = walker.nextNode(); + } + } + }, [activeNetwork, activeData]); if (!activeData) { return null; @@ -143,7 +164,12 @@ export const NetworkVariables = ({ ); })}
-
+
{React.Children.map(children, (child, index) => replaceNode(child, activeData.substitutions, `network-${activeNetwork}-${index}`) )} From 85c9ccf50a972bcad3bc3f7baf5653bd89bf6a63 Mon Sep 17 00:00:00 2001 From: danielporterda Date: Wed, 13 May 2026 15:00:30 -0400 Subject: [PATCH 09/15] Replace split tokens in rendered code blocks --- docs-main/snippets/components/version.mdx | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/docs-main/snippets/components/version.mdx b/docs-main/snippets/components/version.mdx index 77dbc550..a6e59831 100644 --- a/docs-main/snippets/components/version.mdx +++ b/docs-main/snippets/components/version.mdx @@ -115,14 +115,18 @@ export const NetworkVariables = ({ replacementForToken(token, activeData.substitutions) ?? match ); - for (const codeRoot of panelRef.current.querySelectorAll('pre, code')) { - const walker = document.createTreeWalker(codeRoot, NodeFilter.SHOW_TEXT); - let textNode = walker.nextNode(); - while (textNode) { - textNode.nodeValue = replaceTokenText(textNode.nodeValue); - textNode = walker.nextNode(); + const replaceRenderedCode = () => { + for (const codeRoot of panelRef.current.querySelectorAll('pre, code')) { + if (codeRoot.tagName === 'PRE' && codeRoot.querySelector('code')) { + continue; + } + codeRoot.textContent = replaceTokenText(codeRoot.textContent ?? ''); } - } + }; + + replaceRenderedCode(); + const timeout = window.setTimeout(replaceRenderedCode, 100); + return () => window.clearTimeout(timeout); }, [activeNetwork, activeData]); if (!activeData) { From c568f0e4a4189f82ecfabb4922ab01df07f27216 Mon Sep 17 00:00:00 2001 From: danielporterda Date: Wed, 13 May 2026 15:49:24 -0400 Subject: [PATCH 10/15] Preserve paragraph spacing in network variable tabs --- docs-main/snippets/components/version.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs-main/snippets/components/version.mdx b/docs-main/snippets/components/version.mdx index a6e59831..a12458b6 100644 --- a/docs-main/snippets/components/version.mdx +++ b/docs-main/snippets/components/version.mdx @@ -172,7 +172,7 @@ export const NetworkVariables = ({ key={activeNetwork} ref={panelRef} role="tabpanel" - className="px-4 py-4 text-sm leading-6 text-gray-800 dark:text-gray-200" + className="space-y-4 px-4 py-4 text-sm leading-6 text-gray-800 dark:text-gray-200" > {React.Children.map(children, (child, index) => replaceNode(child, activeData.substitutions, `network-${activeNetwork}-${index}`) From 19b0de12f1cd2cde124fa2cb9cd0fd768a9595d7 Mon Sep 17 00:00:00 2001 From: danielporterda Date: Wed, 13 May 2026 16:10:12 -0400 Subject: [PATCH 11/15] Preserve preapproval intro paragraphs in tabs --- .../modules/m7-canton-coin-preapprovals.mdx | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/docs-main/appdev/modules/m7-canton-coin-preapprovals.mdx b/docs-main/appdev/modules/m7-canton-coin-preapprovals.mdx index b1ab3be4..e601edbb 100644 --- a/docs-main/appdev/modules/m7-canton-coin-preapprovals.mdx +++ b/docs-main/appdev/modules/m7-canton-coin-preapprovals.mdx @@ -16,13 +16,21 @@ Reviewers: Skip this section. Remove markers after final approval. +

Contrary to other assets like Eth or Bitcoin, Canton Coin requires a party to explicitly agree to hold Canton Coin. This includes explicitly agreeing to any incoming transfers. +

-Parties that are ok with accepting incoming Canton Coin transfers from any sender, can setup a `TransferPreapproval`. This allows any party to send Canton Coin to the party that setup the `TransferPreapproval`. Note that this only applies to transfers of Canton Coin but not to other assets. Other assets may provide their own variant of a preapproval which needs to be setup separately or they may require approval of each incoming transfer individually. +

+Parties that are ok with accepting incoming Canton Coin transfers from any sender, can setup a TransferPreapproval. This allows any party to send Canton Coin to the party that setup the TransferPreapproval. Note that this only applies to transfers of Canton Coin but not to other assets. Other assets may provide their own variant of a preapproval which needs to be setup separately or they may require approval of each incoming transfer individually. +

-To ensure that the super validators don't have to store and serve `TransferPreapprovals` contracts for parties that are no longer active or malicious parties cannot spam them, a preapproval has a limited lifetime until it expires and a fee must be burned proportional to the lifetime when creating the preapproval. The fee is controlled by the super validators through the `transferPreapprovalFee` parameter. The current value can be observed in CC Scan at [|gsf_scan_url|/dso](|gsf_scan_url|/dso) and defaults to \$1/year. +

+To ensure that the super validators don't have to store and serve TransferPreapprovals contracts for parties that are no longer active or malicious parties cannot spam them, a preapproval has a limited lifetime until it expires and a fee must be burned proportional to the lifetime when creating the preapproval. The fee is controlled by the super validators through the transferPreapprovalFee parameter. The current value can be observed in CC Scan at |gsf_scan_url|/dso and defaults to $1/year. +

-Each preapproval has two parties: The `receiver` party that approves incoming transfers and the `provider` party. The provider party is responsible for paying the fee and renewing the preapproval when it gets close to its expiry date. In return, the `provider` party will be the app provider on all incoming transfers that use this preapproval and get the app rewards for it. The `provider` party must not necessarily be hosted on the same node as the `receiver` party although that is the most common setup in practice. +

+Each preapproval has two parties: The receiver party that approves incoming transfers and the provider party. The provider party is responsible for paying the fee and renewing the preapproval when it gets close to its expiry date. In return, the provider party will be the app provider on all incoming transfers that use this preapproval and get the app rewards for it. The provider party must not necessarily be hosted on the same node as the receiver party although that is the most common setup in practice. +

@@ -61,4 +69,4 @@ If you are working through APIs instead, in particular for external parties, the Lastly, the legacy external signing APIs for non-standard Canton Coin transfers on the validator `/v0/admin/external-party/transfer-preapproval/prepare-send` and `/v0/admin/external-party/transfer-preapproval/submit-send` can also be used. Refer to the API docs for details. -{/* COPIED_END */} \ No newline at end of file +{/* COPIED_END */} From 085b15a9912f494a468b5f66a3899c80110e44e3 Mon Sep 17 00:00:00 2001 From: danielporterda Date: Wed, 13 May 2026 16:31:52 -0400 Subject: [PATCH 12/15] Preserve block spacing in network variable tabs --- .../appdev/modules/m7-canton-coin-preapprovals.mdx | 14 +++----------- docs-main/snippets/components/version.mdx | 13 ++++++++++--- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/docs-main/appdev/modules/m7-canton-coin-preapprovals.mdx b/docs-main/appdev/modules/m7-canton-coin-preapprovals.mdx index e601edbb..40c97e6c 100644 --- a/docs-main/appdev/modules/m7-canton-coin-preapprovals.mdx +++ b/docs-main/appdev/modules/m7-canton-coin-preapprovals.mdx @@ -16,21 +16,13 @@ Reviewers: Skip this section. Remove markers after final approval. -

Contrary to other assets like Eth or Bitcoin, Canton Coin requires a party to explicitly agree to hold Canton Coin. This includes explicitly agreeing to any incoming transfers. -

-

-Parties that are ok with accepting incoming Canton Coin transfers from any sender, can setup a TransferPreapproval. This allows any party to send Canton Coin to the party that setup the TransferPreapproval. Note that this only applies to transfers of Canton Coin but not to other assets. Other assets may provide their own variant of a preapproval which needs to be setup separately or they may require approval of each incoming transfer individually. -

+Parties that are ok with accepting incoming Canton Coin transfers from any sender, can setup a `TransferPreapproval`. This allows any party to send Canton Coin to the party that setup the `TransferPreapproval`. Note that this only applies to transfers of Canton Coin but not to other assets. Other assets may provide their own variant of a preapproval which needs to be setup separately or they may require approval of each incoming transfer individually. -

-To ensure that the super validators don't have to store and serve TransferPreapprovals contracts for parties that are no longer active or malicious parties cannot spam them, a preapproval has a limited lifetime until it expires and a fee must be burned proportional to the lifetime when creating the preapproval. The fee is controlled by the super validators through the transferPreapprovalFee parameter. The current value can be observed in CC Scan at |gsf_scan_url|/dso and defaults to $1/year. -

+To ensure that the super validators don't have to store and serve `TransferPreapprovals` contracts for parties that are no longer active or malicious parties cannot spam them, a preapproval has a limited lifetime until it expires and a fee must be burned proportional to the lifetime when creating the preapproval. The fee is controlled by the super validators through the `transferPreapprovalFee` parameter. The current value can be observed in CC Scan at [|gsf_scan_url|/dso](|gsf_scan_url|/dso) and defaults to \$1/year. -

-Each preapproval has two parties: The receiver party that approves incoming transfers and the provider party. The provider party is responsible for paying the fee and renewing the preapproval when it gets close to its expiry date. In return, the provider party will be the app provider on all incoming transfers that use this preapproval and get the app rewards for it. The provider party must not necessarily be hosted on the same node as the receiver party although that is the most common setup in practice. -

+Each preapproval has two parties: The `receiver` party that approves incoming transfers and the `provider` party. The provider party is responsible for paying the fee and renewing the preapproval when it gets close to its expiry date. In return, the `provider` party will be the app provider on all incoming transfers that use this preapproval and get the app rewards for it. The `provider` party must not necessarily be hosted on the same node as the `receiver` party although that is the most common setup in practice.
diff --git a/docs-main/snippets/components/version.mdx b/docs-main/snippets/components/version.mdx index a12458b6..29010597 100644 --- a/docs-main/snippets/components/version.mdx +++ b/docs-main/snippets/components/version.mdx @@ -174,9 +174,16 @@ export const NetworkVariables = ({ role="tabpanel" className="space-y-4 px-4 py-4 text-sm leading-6 text-gray-800 dark:text-gray-200" > - {React.Children.map(children, (child, index) => - replaceNode(child, activeData.substitutions, `network-${activeNetwork}-${index}`) - )} + {React.Children.map(children, (child, index) => { + if (typeof child === 'string' && !child.trim()) { + return null; + } + return ( +
+ {replaceNode(child, activeData.substitutions, `network-${activeNetwork}-${index}`)} +
+ ); + })}
); From 95a60c51b9467e6f62049436281c22bf96970cd5 Mon Sep 17 00:00:00 2001 From: danielporterda Date: Thu, 14 May 2026 11:29:34 -0400 Subject: [PATCH 13/15] Address network variable feedback --- .../modules/m7-canton-coin-preapprovals.mdx | 15 +++++++-------- .../deployment/required-network-parameters.mdx | 10 +++++----- .../reference/splice-wallet-reference.mdx | 15 +++++++-------- docs-main/snippets/components/version.mdx | 14 +++++++++++++- 4 files changed, 32 insertions(+), 22 deletions(-) diff --git a/docs-main/appdev/modules/m7-canton-coin-preapprovals.mdx b/docs-main/appdev/modules/m7-canton-coin-preapprovals.mdx index 40c97e6c..85e06045 100644 --- a/docs-main/appdev/modules/m7-canton-coin-preapprovals.mdx +++ b/docs-main/appdev/modules/m7-canton-coin-preapprovals.mdx @@ -3,9 +3,6 @@ title: "Canton Coin Preapprovals" description: "How TransferPreapproval contracts enable preapproved Canton Coin transfers" --- -import { NetworkVariables } from '/snippets/components/version.mdx'; -import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; - {/* COPIED_START source="splice:docs/src/background/preapprovals.rst" hash="b2b9b8f3" */} @@ -14,17 +11,19 @@ This section was copied from existing reviewed documentation. Reviewers: Skip this section. Remove markers after final approval. - - Contrary to other assets like Eth or Bitcoin, Canton Coin requires a party to explicitly agree to hold Canton Coin. This includes explicitly agreeing to any incoming transfers. Parties that are ok with accepting incoming Canton Coin transfers from any sender, can setup a `TransferPreapproval`. This allows any party to send Canton Coin to the party that setup the `TransferPreapproval`. Note that this only applies to transfers of Canton Coin but not to other assets. Other assets may provide their own variant of a preapproval which needs to be setup separately or they may require approval of each incoming transfer individually. -To ensure that the super validators don't have to store and serve `TransferPreapprovals` contracts for parties that are no longer active or malicious parties cannot spam them, a preapproval has a limited lifetime until it expires and a fee must be burned proportional to the lifetime when creating the preapproval. The fee is controlled by the super validators through the `transferPreapprovalFee` parameter. The current value can be observed in CC Scan at [|gsf_scan_url|/dso](|gsf_scan_url|/dso) and defaults to \$1/year. +To ensure that the super validators don't have to store and serve `TransferPreapprovals` contracts for parties that are no longer active or malicious parties cannot spam them, a preapproval has a limited lifetime until it expires and a fee must be burned proportional to the lifetime when creating the preapproval. The fee is controlled by the super validators through the `transferPreapprovalFee` parameter. The current value can be observed in CC Scan; select the right network: -Each preapproval has two parties: The `receiver` party that approves incoming transfers and the `provider` party. The provider party is responsible for paying the fee and renewing the preapproval when it gets close to its expiry date. In return, the `provider` party will be the app provider on all incoming transfers that use this preapproval and get the app rewards for it. The `provider` party must not necessarily be hosted on the same node as the `receiver` party although that is the most common setup in practice. +- DevNet: [https://scan.sv-1.dev.global.canton.network.sync.global/dso](https://scan.sv-1.dev.global.canton.network.sync.global/dso) +- TestNet: [https://scan.sv-1.test.global.canton.network.sync.global/dso](https://scan.sv-1.test.global.canton.network.sync.global/dso) +- MainNet: [https://scan.sv-1.global.canton.network.sync.global/dso](https://scan.sv-1.global.canton.network.sync.global/dso) - +The current value defaults to \$1/year. + +Each preapproval has two parties: The `receiver` party that approves incoming transfers and the `provider` party. The provider party is responsible for paying the fee and renewing the preapproval when it gets close to its expiry date. In return, the `provider` party will be the app provider on all incoming transfers that use this preapproval and get the app rewards for it. The `provider` party must not necessarily be hosted on the same node as the `receiver` party although that is the most common setup in practice. ## Setting up Preapprovals diff --git a/docs-main/global-synchronizer/deployment/required-network-parameters.mdx b/docs-main/global-synchronizer/deployment/required-network-parameters.mdx index 5f90d5e9..a65c644a 100644 --- a/docs-main/global-synchronizer/deployment/required-network-parameters.mdx +++ b/docs-main/global-synchronizer/deployment/required-network-parameters.mdx @@ -24,11 +24,11 @@ To initialize your validator node, you need the following parameters that define ONBOARDING_SECRET The onboarding secret provided by your sponsor. If you don't already have one, ask your sponsor. Note that onboarding secrets are one-time use and expire after 48 hours. If you don't join before it expires, you need to request a new secret from your SV sponsor. - +
-**DevNet-only** + -On DevNet, you can obtain an onboarding secret automatically by calling the following endpoint on any SV (replace `SPONSOR_SV_URL` with the SV app URL defined above): +You can obtain an onboarding secret automatically by calling the following endpoint on any SV (replace `SPONSOR_SV_URL` with the SV app URL defined above): ```bash curl -X POST SPONSOR_SV_URL/api/sv/v0/devnet/onboard/validator/prepare @@ -40,8 +40,8 @@ Note that this self-served secret is only valid for 1 hour. - +
-{/* COPIED_END */} \ No newline at end of file +{/* COPIED_END */} diff --git a/docs-main/overview/reference/splice-wallet-reference.mdx b/docs-main/overview/reference/splice-wallet-reference.mdx index e78dbfc0..0e15cc16 100644 --- a/docs-main/overview/reference/splice-wallet-reference.mdx +++ b/docs-main/overview/reference/splice-wallet-reference.mdx @@ -3,9 +3,6 @@ title: "Splice Wallet Reference" description: "Reference documentation for the built-in Splice wallet, covering Canton Coin operations, automation, transfer workflows, APIs, and UTXO management" --- -import { NetworkVariables } from '/snippets/components/version.mdx'; -import { networkData } from '/snippets/generated/version-dashboard-data.mdx'; - The Splice Wallet is the built-in wallet component of every validator node on the Canton Network. It provides Canton Coin (CC) management for parties hosted on that validator, including a web UI, background automation, and programmatic APIs. ## Wallet UI @@ -41,17 +38,19 @@ This section was copied from existing reviewed documentation. Reviewers: Skip this section. Remove markers after final approval. - - Contrary to other assets like Eth or Bitcoin, Canton Coin requires a party to explicitly agree to hold Canton Coin. This includes explicitly agreeing to any incoming transfers. Parties that are ok with accepting incoming Canton Coin transfers from any sender, can setup a `TransferPreapproval`. This allows any party to send Canton Coin to the party that setup the `TransferPreapproval`. Note that this only applies to transfers of Canton Coin but not to other assets. Other assets may provide their own variant of a preapproval which needs to be setup separately or they may require approval of each incoming transfer individually. -To ensure that the super validators don't have to store and serve `TransferPreapprovals` contracts for parties that are no longer active or malicious parties cannot spam them, a preapproval has a limited lifetime until it expires and a fee must be burned proportional to the lifetime when creating the preapproval. The fee is controlled by the super validators through the `transferPreapprovalFee` parameter. The current value can be observed in CC Scan at |gsf_scan_url|/dso and defaults to \$1/year. +To ensure that the super validators don't have to store and serve `TransferPreapprovals` contracts for parties that are no longer active or malicious parties cannot spam them, a preapproval has a limited lifetime until it expires and a fee must be burned proportional to the lifetime when creating the preapproval. The fee is controlled by the super validators through the `transferPreapprovalFee` parameter. The current value can be observed in CC Scan; select the right network: -Each preapproval has two parties: The `receiver` party that approves incoming transfers and the `provider` party. The provider party is responsible for paying the fee and renewing the preapproval when it gets close to its expiry date. In return, the `provider` party will be the app provider on all incoming transfers that use this preapproval and get the app rewards for it. The `provider` party must not necessarily be hosted on the same node as the `receiver` party although that is the most common setup in practice. +- DevNet: [https://scan.sv-1.dev.global.canton.network.sync.global/dso](https://scan.sv-1.dev.global.canton.network.sync.global/dso) +- TestNet: [https://scan.sv-1.test.global.canton.network.sync.global/dso](https://scan.sv-1.test.global.canton.network.sync.global/dso) +- MainNet: [https://scan.sv-1.global.canton.network.sync.global/dso](https://scan.sv-1.global.canton.network.sync.global/dso) - +The current value defaults to \$1/year. + +Each preapproval has two parties: The `receiver` party that approves incoming transfers and the `provider` party. The provider party is responsible for paying the fee and renewing the preapproval when it gets close to its expiry date. In return, the `provider` party will be the app provider on all incoming transfers that use this preapproval and get the app rewards for it. The `provider` party must not necessarily be hosted on the same node as the `receiver` party although that is the most common setup in practice. ## diff --git a/docs-main/snippets/components/version.mdx b/docs-main/snippets/components/version.mdx index 29010597..b459cf5d 100644 --- a/docs-main/snippets/components/version.mdx +++ b/docs-main/snippets/components/version.mdx @@ -82,6 +82,14 @@ export const NetworkVariables = ({ return node; } + const networkOnly = node.props?.['data-network-only']; + if (typeof networkOnly === 'string') { + const allowedNetworks = networkOnly.split(',').map((network) => network.trim()).filter(Boolean); + if (!allowedNetworks.includes(activeNetwork)) { + return null; + } + } + const props = {}; for (const [name, value] of Object.entries(node.props ?? {})) { if (name === 'children') { @@ -178,9 +186,13 @@ export const NetworkVariables = ({ if (typeof child === 'string' && !child.trim()) { return null; } + const content = replaceNode(child, activeData.substitutions, `network-${activeNetwork}-${index}`); + if (content === null || content === false) { + return null; + } return (
- {replaceNode(child, activeData.substitutions, `network-${activeNetwork}-${index}`)} + {content}
); })} From ec63959321e598d4a635b2bc32787f636c6952a7 Mon Sep 17 00:00:00 2001 From: danielporterda Date: Thu, 14 May 2026 12:02:02 -0400 Subject: [PATCH 14/15] Stabilize network variable code replacement --- docs-main/snippets/components/version.mdx | 26 +++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/docs-main/snippets/components/version.mdx b/docs-main/snippets/components/version.mdx index b459cf5d..b0292801 100644 --- a/docs-main/snippets/components/version.mdx +++ b/docs-main/snippets/components/version.mdx @@ -132,9 +132,31 @@ export const NetworkVariables = ({ } }; + let animationFrame; + const scheduleReplaceRenderedCode = () => { + if (animationFrame) { + window.cancelAnimationFrame(animationFrame); + } + animationFrame = window.requestAnimationFrame(() => { + animationFrame = null; + replaceRenderedCode(); + }); + }; + const observer = new MutationObserver(scheduleReplaceRenderedCode); + const timeouts = [100, 500, 1000].map((delay) => window.setTimeout(replaceRenderedCode, delay)); + replaceRenderedCode(); - const timeout = window.setTimeout(replaceRenderedCode, 100); - return () => window.clearTimeout(timeout); + observer.observe(panelRef.current, { childList: true, characterData: true, subtree: true }); + + return () => { + observer.disconnect(); + if (animationFrame) { + window.cancelAnimationFrame(animationFrame); + } + for (const timeout of timeouts) { + window.clearTimeout(timeout); + } + }; }, [activeNetwork, activeData]); if (!activeData) { From 41a88b7b7854efe2ce4806bc7060b9296b9e2191 Mon Sep 17 00:00:00 2001 From: Ibo Sy Date: Fri, 15 May 2026 13:54:53 +0200 Subject: [PATCH 15/15] fix monitoring-setup.mdx syntax Signed-off-by: Ibo Sy --- .../production-operations/monitoring-setup.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs-main/global-synchronizer/production-operations/monitoring-setup.mdx b/docs-main/global-synchronizer/production-operations/monitoring-setup.mdx index 80f3f754..af5705f1 100644 --- a/docs-main/global-synchronizer/production-operations/monitoring-setup.mdx +++ b/docs-main/global-synchronizer/production-operations/monitoring-setup.mdx @@ -33,7 +33,7 @@ To configure [Docker Compose](https://docs.docker.com/compose/) to spin up the D `compose` allows you to provide the overall configuration across multiple files. Each configuration file is described below, followed by information on how to bring them together in a running network. -A diagram showing an example Docker network setup +A diagram showing an example Docker network setup ### Intended Use @@ -398,7 +398,7 @@ To view container metrics: You should now see a UI similar to the one shown. -An example cAdvisor UI +An example cAdvisor UI Prometheus-formatted metrics are available by default at [http://localhost:8080/metrics](http://localhost:8080/metrics). @@ -704,7 +704,7 @@ When Kibana is started for the first time, you must set up a data view to allow You should now see a UI similar to the one shown here: -An example Kibana UI +An example Kibana UI In the Kibana interface, you can: @@ -728,7 +728,7 @@ You can log into the Grafana UI and set up a dashboard. The example imports a [G You should see a container system metrics dashboard similar to the one shown here: -An example metrics dashboard +An example metrics dashboard See the [Grafana documentation](https://grafana.com/grafana/) for how to configure dashboards. For information about which metrics are available, see the Metrics documentation in the Monitoring section of this user manual.