From 54d2ed66e361fba30a9f9ee8af7f685bd455f6ad Mon Sep 17 00:00:00 2001 From: Nguyen Van Viet Date: Wed, 16 Aug 2023 13:20:10 +0700 Subject: [PATCH] feat: add zkevm (#2152) * feat: add zkevm * point to prod * update subgraph link * fix minor bug * update logo chain * fix: zksync path * fix: build * update farm contract * revert env.adpr --- package.json | 4 +- src/assets/networks/avax-network.png | Bin 84097 -> 0 bytes src/assets/networks/bsc-network.png | Bin 8792 -> 0 bytes src/assets/networks/bttc.png | Bin 4351 -> 0 bytes src/assets/networks/ethw.png | Bin 46186 -> 0 bytes src/assets/networks/polygon-network.png | Bin 1314 -> 0 bytes src/assets/networks/zksync-network.png | Bin 625 -> 0 bytes src/assets/svg/eth_pow.svg | 12 --- src/components/ClassicElasticTab.tsx | 2 +- .../Header/web3/NetworkModal/Networks.tsx | 13 --- src/components/SwapForm/PriceImpactNote.tsx | 6 +- src/components/SwapForm/SlippageSetting.tsx | 6 +- .../SwapButtonWithPriceImpact.tsx | 4 +- .../SwapModal/ConfirmSwapModalContent.tsx | 6 +- src/components/SwapForm/index.tsx | 40 +++++---- src/constants/bases.ts | 9 +-- src/constants/index.ts | 3 +- src/constants/networks.ts | 26 +++--- src/constants/networks/avax-testnet.ts | 5 +- src/constants/networks/avax.ts | 5 +- src/constants/networks/bnb-testnet.ts | 3 +- src/constants/networks/bnb.ts | 5 +- src/constants/networks/bttc.ts | 5 +- src/constants/networks/ethereum.ts | 2 +- src/constants/networks/index.ts | 1 - src/constants/networks/linea-testnet.ts | 71 ---------------- src/constants/networks/linea.ts | 2 +- src/constants/networks/matic.ts | 7 +- src/constants/networks/mumbai.ts | 5 +- src/constants/networks/zkevm.ts | 76 ++++++++++++++++++ src/constants/networks/zksync.ts | 3 +- src/constants/tokens.ts | 64 +++++---------- src/pages/About/AboutKyberSwap/index.tsx | 50 +++++------- src/state/user/actions.ts | 3 - src/state/user/hooks.tsx | 17 +--- src/state/user/reducer.ts | 9 --- src/utils/aggregationRouting.ts | 14 +--- src/utils/index.ts | 1 + src/utils/priceImpact.ts | 17 +--- src/utils/slippage.ts | 10 +-- yarn.lock | 8 +- 41 files changed, 195 insertions(+), 319 deletions(-) delete mode 100644 src/assets/networks/avax-network.png delete mode 100644 src/assets/networks/bsc-network.png delete mode 100644 src/assets/networks/bttc.png delete mode 100644 src/assets/networks/ethw.png delete mode 100644 src/assets/networks/polygon-network.png delete mode 100644 src/assets/networks/zksync-network.png delete mode 100644 src/assets/svg/eth_pow.svg delete mode 100644 src/constants/networks/linea-testnet.ts create mode 100644 src/constants/networks/zkevm.ts diff --git a/package.json b/package.json index 8ac6a94b36..bd982943b8 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "@esbuild-plugins/node-globals-polyfill": "^0.2.3", "@kybernetwork/oauth2": "1.0.0", "@kyberswap/ks-sdk-classic": "^1.0.3", - "@kyberswap/ks-sdk-core": "1.0.8", + "@kyberswap/ks-sdk-core": "1.0.9", "@kyberswap/ks-sdk-elastic": "^1.1.2", "@kyberswap/ks-sdk-solana": "^1.0.2", "@lingui/loader": "~3.14.0", @@ -199,7 +199,7 @@ "vite-tsconfig-paths": "^4.0.8" }, "resolutions": { - "@kyberswap/ks-sdk-core": "1.0.8", + "@kyberswap/ks-sdk-core": "1.0.9", "react-error-overlay": "6.0.9", "@lingui/babel-plugin-extract-messages": "3.14.0", "@lingui/cli": "3.14.0", diff --git a/src/assets/networks/avax-network.png b/src/assets/networks/avax-network.png deleted file mode 100644 index 28b409a34a387e77e86be8ead2443e3f7b3f9eba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84097 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

SxLrhx6s)1t3}5$@wqZjKeEIefKE>e9MVNEW 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%0AdF$iTIwp}Ua?b}?_ z_Ov+fggl;}FNiDw*BiMx-KyX=08W#sPa&xQ2uUFQfy3PrUwOff4$g&PIFcX?8=vs_ zV8k{O%Vh~6IW9B1NU+9U8|@@TSZKfex`1FL2;P!sb5P}cvJgcZ&xwo53TAcq{_|5c zof>}~;-gid*Y=~v=?&F!l+HOhuR#25HPTSo)dEL0k)USSI#yC`0&Pk5icT$SZ%K-X zCkcwgb@@LTIrdwWl<;F4L!mE1HOKYXLd)ERqqAcvl*&H6FtY`x)jE>zU=5!*Q{o@< zn0`8h_!m;mmnGdB#6_!@VZ@p0b`!+TmdTY`p@S`q*Qfk+huynm>X(x(!a=Pb=eUgk zRTll!^=?F!P7|%(t_sm46U*gdSIJxFC+nK!%Yv&5UArySt$@&63r;F+YcKlo9AVmD z%%(lOZ$vg7TkZ-yM<_@Fn~-NZ^U)7O)rpLt)_s?rqs98pzhF7DnGCjqcm(rV^xPhK z`DKx4;HPJ^sF)}ae%)Uqd1 z8jlxVoZDz`B~ukY(XJ;p#>rvv>eZ$INv%g?n|N@%ki3&f6VGde>bWWNfYjQ{FnCw? zwI8>LAcR#T-Mnq)^KxG3_3L@lBtI zg2vF%F5uTZWu1c^7qhP8JG5qKdZ z3bg9i;&%X_uzR(77ad=F{>3+T?xNpByQO8_F{qZ*Bu@;phE7=N!@7quhpthVxy5vWB5 z_2(%0X(;1PT;2OM=mc#FISfyGmUv@FW!>Dfw4^RH6Ic6+BJmdxrlOTDq$VmxS7jmR zdJ{~Tb}a|_EG=Eviz0rP0pf1Uz)Kl)p^P_)@DKMBr9)j^xl_Vl7f0J}y}Sp$B(3Pu zd^}B97~8|($DZYIx+M{TMDvOTJp

ue9Qkf8)tH$<_Mfd^v!lx||r@Dk;pxmCbOq=IP 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

twpVAsRryl2mC)UcDa8gl)fb;X7y4 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 diff --git a/src/assets/networks/bttc.png b/src/assets/networks/bttc.png deleted file mode 100644 index 26d324ef324993d8391fded7671d70d2eb2e5b21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4351 zcmVXRvIiA)O_R%xkNE;2;LYBH3T1|bb! z3Jva6niWl&)cN-B+Y zC6xrbRTisEQ<m;Cwh3&O6NsC!7#>M2=OdE9C^;R8~on2j=r@+qSJ4J$kg+ym_<96m*oD zF=NJR0d0uhdktvLrlkx9nHLX^Gs=D(V|6mRH_+BrO2WA?^3ED z=$$1=9;{uvc4eYC7eD>M@S^Fzt zB`#4pO)`x0RB}TPamO8Zm^EwGnDUAZ8#b8RZ@=ACs#GbY#N7OM%m`|Sly}4tN0=c) zhM0j3$qgu6Ul?z8vT=49topxGCiL)ezcaD>Z;O4uz8*A6DEt4iql2cEOm2||y zpMU---+lL;{P4pMq5-mO*|J4;?ARgt*~x3Ky(atZS5o38ie<}|$(2`LY5#gKM5Tw6 z0G-A2>oD{+g)$`tLG^?Q6U>7TK4|LIt7j@#uIwER7=2Zy$rKogm?H6y#BNedkm^J- z42^%f**hU(RA;D70JsNBQK(#k|{1w{LMGt z97}1Xtw2B|5qO4)Qbcr6+3Q}27>Y2Us8IIAbm-6_S?EwM6bOiA1JBVZrtU0fw$!}< zQM}SgMS2*enaq3dy=SUduU;gD!3T0qojP^Qg%@6Enl^1}wr<^ON&_SUWK*8!!pl^T zqriXrUW!zxC{XWdM=Z)nr7%WVqehL)fB^%{s8OSA{tDH#ckf ze*Jn;MauT=+wHys4?Iu~Km2ex_Sj?Pth3INx^?T?ZJB`DYI*2q zr3lYGhr7z7V_>6uAoYbfc*2i2%i!>IR5c>{)dC{(%n>Z|QF7=4#tetAlTsdu%3 zEKXth^5xzzhEa@Jfzwk@Z%6Z|pMGjG1;VKSlTET=Q#R1d9g_O;qBcsBL0?9+MCq-| zHg4QlR1u;hPxSM)HQW%?YfIn0edU^Ku92gTI!e@|TBe7ZFQLrFjT`N~2w6117A;?j z#*LPt;rfI&nSvJfMMuBn z9eL!DreD8)c2psseDaC4IdOt-1O}y7uU=;1!i6T2poZ<>f(ue!^!ewX_rA;(S6pHDPnnM~lKi!Sor z6WvK4cSnyNJ(6AwMutS+Hxd>sSYUrK0$blpUV7=JX64G2R(V%lbyZpvmneAo#~ypk zq#M0^_x9cI-&G2RVInZ<$uN2HWcm5$pCjAJAJ0DfZ0itw6giDU+1c5ans42@wS4i# z7fJ6^wQ5yS($$`)*^14RX)0Q=Vnwi_2>QQ&|NeHrk`t0H@C+W=BbZ9`e@JwBVzBI8Xii-DuI)F|*_aHBpHR9M1e)$l{XMIK=E|1aTBNJ$l{N~%5pp;5PV=~7c1 zz#;lF6r@Fq7M7bVDR_2|Cti;Nx4SR9Zr!@zg+kt!Ux=EAZ{OW_-)+ym>#n=J`*BD( zmXct~lqnG<;_b=3(*aBqx^bR;2MR1y`=F&(Bmdxqh__q?@JSO0tMT?KNQqTj7x9e} z%`R+}E**IC$tUeK&p-cso5Nx+(*<;bZk*@e8&Tk4haHwwffrwVaYP9)F@PA*-3Pf! zZRCX)UhpdS@y8!G=>qrB6fh&DfRF+!OI{Z84{-nFoj&MwWbxv~k?m)md8Vb^)jLM^ zHE-Tr)UMjx)&+Scbbh+Pedsb!8!hPudhvu#J5k`4LR&OBr=i;iS}jQIU8rLaWn63% zxC?3>C|B)cWFN60jpY>q=mgz3*o*?#C2m2>K1Bd}R~UsZG+eNSB>i+E`?N%8gKm`X zg6{l^0$3q}bO&otV6M9rW%y7~9diNg50;_8$nan?ix29dz1ta?Oq%f_vC@=7k{=xjL(#5d1$_l91sUcGveZA!`8&zq3N1)~{gjXAQ9 zABnMue(BphU1d+@g#RdnsZ*zVV>g<5Txi|bW+CUD7oB1;d-iNQ3N_7(>?5wy znzA>3EHA)8PM9#kw`*$Re^4Zj%qI60)~WG&azaaRe(=Eu-h7ulSVI|a(-8%%xCQ*O z0MF)mCxYIHy?Wg}kj^I`G~e{{c~t7ERjU@+M`4-*djVVG3eA+%QpzJ}Z}B{Hws?@` z9tgSWn+Njr(@#e(3fTzRN}blHBzQ#F>~qdJ$Gg9F?b^1xt2}`Yh(Ie!8=nHb?QQh4 zxPaPWO1^t6Z5dGL9^%o~FCa}n`|LCCe#xi4N;(4|ouIYP^PIuql{>R}>dKU!Yr}x5R*Vnggx>?p$CRh^T3}$7&JU_Nn;1HNrV`{ZmJw z#uBHsLksq{ggJKXSld&bDbULpXlGk0o@G-)+&7a-UUxS_ztggoh=BtK$|H|F61hND zR+i`}v@L6N+`Ay{d-mC9?KNM0^;PN9r%#X)a{=>1hdx0)lO9?Z|DSEch7GgrZIG-knl^1J zg9Z(=#!hy2AUz?#5gLh4exIr!j%?fKMQ5Qtz} z@0ei^F$^F{nQ9i8teaqm5wf%pPraxlz^UYjXQ*TQn0AmD>_Qxnl98JE&SADX6P)?1$xa$JY?!uI z-vXg6SIN*wtjB$mO!mo@3@*SETzCh&2Jw(+oB>TmaD}1vGlFh%V+=VNhsKn)B`tJ( zD&a@CQ6J@;JDvtr@{K14N@J}1cs5h>`m z!EP2TLQ9tvu^W^BG=H^q=Vbji4v3gBJ8wui21|pm@&^%Wu|g4uR6K3sGRSc!AO-}M zofS9Iz6^3Eag5~E56IU{83_fT{*qU!sIZ{gM;Q<@GBPVZ144rUtZ$Z-!cy?1{XZk1 zn%`3L;z#;>2@>~}l7TKM0{a>Hf-~DJrG(N}U?T7kCraM`4x?6r&~;Ab3uW)0e=JHO tn4_ONSMrj5g5Dg-YtLIDWwbK+e*r5ULIta8V{Et++qRvJZQHhO`y}swzKgk;?w&3@^;C6t zO|YW81Uw853>Ylcl*BTG0l4BgK zyKKB(@2RVnXb4lQ2}nGVCj8HJ-0-w~1xCspB6i7%lZ7#`(V+qpSw>%iw3Z>yxHxoJzZ4Ps!i z5j|b3GL%Te{F52P`LJ4Gy`rL|q_jQru~2goDPW(24L3d7Q#vBo(VCM(oG+BAsAM;L zCF6a4Du9#Mbw^JXu@jnDIoDDa5<*pkke5Te35!|DWz6m0}St5H4_h}-D*4m zU_<;QWjx2!c{##L|Bd}BXe(4mRk!^yFmv0CQe1?j0{PP}@9Ick81jJ3>S1^uCx%2% zt3z8|>D$+c(N(DT<0&FL%ho1umUSu()&b5j<5u-~W&-tq0QNcl+Jy>_-1tED)_7?uDFEvR+N0&hO z8p8HCM$BlNg?pJ@5d0_u9{tAXc8GS*(zToY&v=3dylR2D&UFeK1l#DlaH6f&=eWg)r#UmHWDI9}aZv9L+CLlUzY`G1o@(E+>0*!Acg)_rlz&)L4r`czvaQsKR; zMgiV-Ytut((IS_j^EIS^4p?Mktcr*JW!OU|y!s6u{Wn{9FmFh;B7rS@8wF>vK3|DX zGzH>hK9AM_^d7q0>?yJ@x{uw$sPdp^ABF}Tw~GDxykeFim-?&5&)gRs!!W!(c^d?|HTu9IG#7Luv;=0tb!;0C3MkbIU0TYGNM?UuAjf(0UvTY zEP%`}zpq&36Bd$HK;`nB?ep!}4wrk9o~0E5&dh*!g$4KK2H`7;%7QM}6Y9L}e_zNG z0d}1}^1xbp(=3kXDQIcjx`83;8KV&Ot<04daf1IRO_r9YHsR`c*ON1XDbAW2u209d zUs5$_^!8!UPaS_1Jo+zzHm`yw(mY)`1#}N*F5qs_$l@u}M1)SGUm}Xi<@5f}-(ZpC zb$W|KKnJmnYuubzGb=Kb)o<7S4$ymLEL*PB)CiQ$9?PmKr)2z3Ev5ooEDbe~2O-nL zf5uT9QTiT4K-a$gzcvV_$7{Tk96K|dPl6c<7oc! z)|_pSFX{jbRd^j=y6ZA?vDr1>cnSq#U{7uLdk8r~(6UVYoUIBIwdR8@=6w88RB(Ie z(_Z*2p=U)u&i`^@3?QdTR=FSYKpVAGKa!}NYYFouDyK{KefxqRBnq(LZN_A>rp=D* z_rPHF*t|ku9o62{6z3G4H24iqiLF@Q`d93O1%64Omy)~@4!n^HDvy*WBIblk7+^sA zDUvOuxDkzY?Cahq^hJ=62t7^rD+OA&>A?4d@~5CfqCDCx1w{Xubzomvr8Lroy&g5S zGwfG@Ql9R2xdpF^Zy*P?A+mCVWpi{ztGh2JOMYB!eBmhQOQFuqoern-H5S-5;7yyL zHqoTrZ`ElC(_dL6S8(Ytoy|;$tapNK+nZlN00VZJy(XKuVp`FLdpY8Hg4Z1y?rI&u z(Ly=-2int6BmDRzR8FKrHNuXTT*!k;{aRdl8e+W;rvz)vhje%Vv6}n=irag^Codx) z{Wmo!nXtp9+h+q>S4PbdGVGcE!#;uPr)>Wa{?3Up1QE!hk)81gGrUijRaIVHZScOFFZDU{blg_4WC0jO z1oSU*fxq}6)HY#ys!=nbzUS3_g$dk$)0wd9Tn;vQD^P-{WZ*ukvy5nwMN$FyeWe@G z4WvkfcXVk|VtxEyvHOBS_;%;u&0O;j_^BS@4zX!UFCezj-k$@CNbW%_#x&hIWWww- zNf>;5xz#gtDgTOxqU_wpAfyT7rxwPOMnJqZYz6sqtrz}Iu1FKv5<2<|$fvJPWjszf zGS^mbfH&<`ft5ZmCbvhjc_4O_G-==Q;L_oq!sLHCB8auaN927P@1E<^c#AHNiMHW3D-7XVokJ!*T|}-_I}hUy-<2iM z^FZ+DpiDJ zbkDq!9doWGD&#HTYsq*1Ys-TU%X9S>?{|VZsoE(av_s_QQuvK_W{MwDy;(EK>ItkA zoo?zF!H-^L&n-mgFVHWasTTrxeg0K% zG?qRdR%YTO9y}-53;b{mIAq;K8V!*dt;WiUZ@BIz!YcnzZnQ&#p%4Yv`2v!_f4?7~ z_ZWY(!RKNX*-&9Kbt<0U%K-k@+na?)0n)PJGF$ILB@pa`&P z{l&QpjG9>9t`mskF99!gzxp>y{bjdQp6!8EiAJX;n@$q?_G08|QbX)i-YKXhMT>@C zYXFz99roupx%r-#;WvOl{(hOA4Vl#PiCy(^-W_Xq>Ih<}D+y0u%F;}ZjOKV%JC3gs zL#OMt>MC~yd(IPlF3KIk^N8^f#OzV;E_&tg*Yh|T1kFtiM!59AbfU779p+a+XYAy5 z+@HGsV?Z1S%bCgQLJ-#qA&Jc2NqqNdPd~tj=fuq=Qc|g5MjooqLCEII`UL(t#uxCF zUsoB@Un&pOa-UYjPV+RvaTI1Uto@lAZX9tWr@u`yVR>(nGHWo2IcKWr)vMca{I{Ed zjrptLALrlvW0M;Qf72dAVq|MQFb7-!Q$+tBRqvSE4OT+Yv59Ffyo@3PYIBIcG6P@F z#K(2hf%pjI=yWpb508ALkx{oF_klNl0AbuGxWAhVi&b(;? zK5FAC3FTBQvmOg`wR)Jde`OicBt;!Lk*f$!SoxfDTXytU=NT~7PU*h(ae6&1obcXw zy$TN0M1+vFtU57ST{B6YDv11TwJ@{5d{(yLBD*iUT6nt$N%2>yLQ4bv&sXd@<2#IK z39OFdS*7krZZL;)R)9Ze)deaAUUBRYgcjz%tV_o1%f7yl`*5MzQb2JnlIYk)eOa(# z`+(o`+%edx3`dvuDfPutuwxF|gY)xf zV;;OE<^<BPhTQWK7=39tWt%3Vp8TiO77LZNfB-oJzz0B^sJG3LOQm z=|~_vy4N1^%gQ&Z2DZSTf(P0?HqE*wHX6UHvlI@+m0UQ6eEIh2Gc_-gebM!fI`3Kr zHyTI#8$UP;?-iIru_FdSs$HVb955c81_R40!Bu7XH7U0Ga5RZA*{b0Tt(&2ub@^UH ztS|k`;`n`^=&gZ#-sH_;91Z&;u9@>IYowgwM;WO>GL~zu78kDlQa^4(*|kvf@SgPG zOt!9M-h_@v-%oUOp1?1pzzN)3!79*YWHj0e{JV^pyoC@UIBhH_Og63Bi2YuBBWnt7 z!|fl%juGCQ%BV9O%IwfCm-(mZD->wIAj&jaZsT>)&c(U$4UGoeBWYpNmlGedBTz_W zo!wo$E4mX}T>b&2yqpwCUEorN>+px)+yr>0uVX>-uk?_R^e;E?{Pn&Ws!7~eLre?~ zp@HRpBMoS@jaq5djOL`5AeAD5+W$tW(C!q}-H)%L(TCzFEgyKJC`8OY3+8EMt+DI$ z-ZS#W(g$Av#^2HN-t9iVK60+~GW|WVnJ^E>V?G7SqM#Wjvr}%)3D;||+2g7&Q{o63 z_nn**acr+X8L|du_>PV+4HaP)-TJvSu>`ev5&MfH2e9aDbY}r|D{FT|K%9O17O11g zA|D)^9Wp~)HKsPfX52T>`tyIx6~d0HzT9?f2IIms(iyLDYZ0meoK(Ar$+?w{f4*`} z#N`ZO)8**)QNdNqt%y!NY196tf{Rqw6zcf21q zS>6l`ECo$>Hj(i>BE_DFx6Xx;r9g$di_jp zUq;#|58uKwSRn`6=fN-J(>{e_ew`=AzofL@`gnZ0DIIyJmFd&5ZY);q>5BwH9|5uL z**X$1HKFd^k?rv2%`0fZIXM&I)`GY}J)aDm3BY6VmR8&2U5zTfDVPy$*vo`AFMW@O z1ISM*-SvhXPn4n-H-de+MhlD1N(XPe&iRi`0oAHhPtj19zlD42ck+T5z`fai@TBKGzVYUdmh>+O*9`$4?szVlIVYeaYdwO z0E{Mr-s|O|vaRk#`SE^yzoU|c!uDjFMaQcyl)>eR!HIo;g4^^`OXoGX(#?Kr;*)j) zBL!IB2|lK?mgt&t``6fsn`r9)99X{&dJPyNX2z*o)AM}mu}R;XMFx((ry5?m^<`LQ zltSkZG!@>(S(xag`R}WQBvOhpv99kk1!%4+$1Vn4YaHiwGROrK%@rXv2qja%rpg71t<^CSx5i+X)i6P@Xd~Y zUQ;4OuCl#mG9k*WOrd0AnZ~-=t4dDG@>k5#@9G?OuTu%J*IywVTlrpB`#^na(1378JcRDt5J0o zzjcpD$5#?}K0zK6?k~2eJ$6gu{GoW$%^l<)_Udph3kWIq0}fDoQ{+q0u# zXlaHA6a)g}#B<|JOq;b6*B1}dBo0_^iPjjw20ehKqGB*lcYdDea zNgg0C(L&SavC8S3o6>@5kX%6Q7_G>NNn!fbEkw=VA1@Y8$DqVlk5#CxLR6A9qtdYp#sM6DtJUHkoJC;LwcT1gf0*}$u`@F zvy`$-1X*Nqh!E+C8i(B|)J1TwO{?lB-Ezx$<3HFc^Xm4=t&?yFt1R6qWK$1U_QHWbzHC$)P!p!y{pL3`H65+dpFkcV~{?VKcr50y0EylU?2u1 zp;gS^mG(89j$W41V1wK+wP?bf`<z2nJ{IVwVecCX6>hZTJT)+(6KqCvKf7h=?tC{8Iwxznjrg6Q| z(WLAnxRKZSpQaTM{?@23;wNPNhzS(9x(928KIa~??6|HhgX;`*E|4VO#{a6ZE6+6^ zq+v$OWkm=#O<_FFMiYg#d4lhtQgq!PG2Ui+iRH_ka4b8%+s;#@^;y2bqmAe7=;$r* z-!k#U^bHGqJa|72@4Quq^n@M@B5-*<$4+ph6Fpwhm!XM^z)4)lvtpt7h0}ZP#h2e+ z=i4nW(w0MbQlNJS2`+!)nb<>jftq$iFF;mkFA#C#=SXbOY4IS%PYvagNe! zSF1~!;*wkrUSJIT%m?QuZzOgOOa|D}jD)sYQ>af+{zf*5P0wxZ$p;`9ejssB}16)U+2?o^XSFy%8C7)}<3GB8*dS`coi^XX-a9HC6DOXAA!! zFnMhsjJMUX?0W}@Ogvf%On19e zf7m%#`0I^Vu@S-jyGko>v*p?PsaoX61)&~IB|{!->_Tg%1n-&ckCCno;Rg<;NnW)) zVb%A6j;oW1xr;zN`&slsB5@bM(^+F_oa$d&9a%&#faayVjl(b49TS&_ruM3Q`@%ts zdXrh#X%k|bxy>S`0wvkLVX!#9mdvI(=U!+*4mnA-m&u}rzyHvEE3j%Kf0~qH;=+tr zhVhRmtC>9R0bqq(&zr{%uF>?3n-TiM%pus zixmAnvo+ab!EUus6iJ2~7u+1sa4rC(S~m;)nPHZe7}M)ESSQU~xfjVu#j4okqQ+i) z9BZ+)NfPZuv9|fdH1ly#zE^C8ZVyav#YWu8Qpf(=Yc033$c1edtnG+908j1z)IR?6 z453fF(E`?nZb-!JH}H4O=~<^3&%5(-X{}1Y9qpnuT6ISjc=)|CVM8Qnr;{MH$j0Rj zI%b@+dUwiXPLKz-iOlXGeyvaK-u}|) zW@vex@^I5~#ldKEfhOCaCs^UGWQ98T`RKSWee^Q5JrmPvD(N~7gz!kDX zlk7e=*G0lSS0je1F|MtC(x1ue;^7G=y2`uj4R_(?( z*DjCHl5l_=49RAdIizUUL^vQ~>knU73RN9*s*zdJGGlPWrQ&AEHNZE$=y+x8(x#`0&%p=R8Y3m~MO=Qr=1{cWL1==*(io2buTgk|3FR#3YAP8G?8&?0Qi zl2prIQd%IS)h9xDEoYVrFFe6vE1&g6La3j%f`}u1HQc?0QUxccYKn~T7H6DQxx%|q zx8;^&(*Hm;HKgZ1v^7h;YRK-lGRPTbXWQb12m+b)f5DJ25rMhc{qV`eC2jD#UaYuS z0q@iek(+I?@Z4Q+m4kX4T<@Z-^3js`0crY|bJu@DB?59&cg|?v{TNC#feSa$(7qS~ z6hPc>U@r+pgI-$mkCkM>xbg#nyM4l>oEm}VKPQLvU!X;54eM;PXWP<#0#37CZ(!R5 zB9*Djjq}$JVDzaQI2Ir8cB!5pONuLAeBHu^T499_;BHhT$W4_9&CWHUaJ@TH@`m*q zCk)VRL<9AbHHv4?v!rB{JZV|onpaLh7$3QMKD8luVB{rHSIjy3S;Qjcrfw20KAOkfix|jy6s3h^b92~!RfHks*~9EhI`mO zAXoSQ1KaDe!|imUCHOVD8%e#hA?QV%Bru~Yi50;Z3c{EXukf2!8`6HvJYC-0uM*@q z3M2C)EGgY^wwh+@tq^g&_$>^3%q^F@^5*Z>)6bwO;3e4`FPDXR!kMiM{XFc%BYBqO zGfxJd*D)r0x)^)Vkr50~GBhkli^pcyDd8@kAs*^|A@DKIF}sk2_xWJ>nQPbd-)qJ( zE=P0-$l-jzal-j^fH+a>_>^$6n;M$cb0VpRg2Xbho!0a<-mHJVN47uf(AdkEa^Khp zuG}@ONP8oRAW}{adQWBUT`QDU>t%&SA0#WP(@7SySbXe)7mq>iXp9@JtGB@g4+0}O z`08WsuRn=Kz^FtO&;CmQCYzN=r~YjYV}pj+Pxn)Xhhjr+G*i0m=p32N7Ce2oy2>(M z8%K@}q9`3Lx+7XqdBiNwS&cbJOu1YYl&yCo#gVeK;x1r&; znn}54J1Vz5`~hn7Mc~pj(y3rSvKe>Nm}$PzE+I?2`6EG%fh2R`sH2K4aSOf;k&jW9 zg@onxTEA*Yt)}4h5=$7?V>jA<-pR)%B9BvUK{I1jX!Xwp7005WJj?frIi5w;k`La?y9#w&>lpe7x$!>_(nF9n;7_<2Ift7K%V~ zRuYDfdGTC)zwBCEbhf%5NmFct!^Aj-S&e4^Lpkn?RVA}N|JD_8q!<7+-;(`+0$*-> z>kYtgQO*5-y#Q-b3GvdFG>FwpkSAA1blivuGKDxVZHRF>5p$u-e7B>`ELxRH=LS9G*Kje7cU$9FOfW2*RnCGgF`%$1#>ogJkvt0E27-~ z*XKLFeY<^*RaP| z4QY@x==Q9MvleoW3acth!UEi*cMqYb>V=h}l7q9Tn63xSg8r68xsiUyZ|*%1aG`tK z@V-{QW`y6!$urpHpI;wqKcD#Fk{GNpK5}%-`Mg}RcG3>3y#>9!< zV$2V`NR=6g97_UO^U9f;M$ESiL$p!a%AFB58nCyP;L^XVPNJhDMiwc7i<#+OjUCu;qQ4w9wQ@nqnASat;`1 zyLAq%2)zN`CP-jRABViV#%Z#y=g)xN)20eGc>77@`~ndY#&|;VXrZ1o;~tGp;43L8SF?kWD%jEdp$%1z< zCa+d%~D7-+GhDN#CBjF@)Qh>xVj~f$#?8gHPAvthiNG2<23Vyg!EM`}*GgwNg z$gSFaqNkdl0!RP{6~+a<-hH z+PF&6I=bJPLdyqy2OW69s#5LgGL&Gi!+%_N43b9g0cMGNn{gEvc3rBT!Z0~1&ZRRm zn^B1sJ-w*gOP9n|9ug1SXXLjRSDK_+*EDSk3y&wE>N099*p;h>>5K#f;}zrVGF@hd z&Wp-h;vXKCA{3AKF*4h8QFlyjMNHt9a%X2chf@wO2QORzIus{_BTznV3Hmr0Nbj+5 zHK)-uZy{rbJ^EV|$ko_RIQN*6Tf}$W zME|@jK*8hi^&k--ZgA$BNU1hbuEB^!bYy0}$VMLCKhqE-j6L%N-)zivBCQry zJw=w2A%Ds2WdT2rI#%tG8|;<~Y1bZeR`)|L5a!vTMY34Cq|lt@9;&>8{&%7RkXEG2 zOA+E)d}J&uLWfYFrKt*mYbqc=IWj_v4_!=N*?l#(iCm+AHeK^xB}lKmlz*4Xd9kiX>LF`%X^~ zx_V4O^3*~qtm&S(Vf`u9VnxSg`zigplHGCXP)>@vW2TU#XRxYH3-NJvU^?8wb`S;< zCU8DdawUk9iMDTy?;$<~VqG;YWY+6QzkaH$a@f|XTAZj~AYQ>uo?)3$BPJy91&(}z-?dFA0HKv=WPF;Z z^XX{=8l@oisB%F~BVMBN`^tNMGYr@5XMG*DEi$3~cs^$cTYZ)p?lv4S^LP9=7NjN? zGh`>@=D7;HB2w%*)Wu2_f&G>F*L-7E}ml4 zKFUaJ?d!)*N7QWmf~9i*+J8+k2^u388`%~V}4oXnDz77jf1~%+(rCoxiEm-SS*gtx^kVtGo!moa*!m~2E zFA&PeMrcs7rS+qgmym`Bu9yo?)#3_GjXh>3av_vT2}$R6)v*`Xp$&i!*KwhTz_o06 z!Zn!8td1F)x5KjF!kYi%I=;nPFA>k!^H)Wtm$l@z1i*y0P^&+s6r{MPS&{+5u0jXg)D5J=shu z0hLq@kNN8mbcs5Vh8rpV{1~4q5aG+K{+ z4I_Ej{E*u}c=uavBsZ*I20y0&S@?VXk+l(U!2aH$l|8n9VSi?RK8{csCIVQB{HlHO z9Duz_U?P$3fL&`|pcM>f`}f;hms=or1n)X);Xah8K>U!+PXX>8`|ml%aAg;JgRndh z-Jv0tR6TTnR8r|d=wMT2KAN13q5MaJv%MgXHdzsr zPVVhf9(eC#&vuw5TXu@?cuA$2au2!eZ+GE|w)$W=d;#kW=X>R40gL0+4#-Yn1>2k*&7van0Jm~j#$nd&0=J67wjGNui{<&G zq1fgoohO74yAoNCe`!wkO&v;HpjzsbEJA2I-VzY?hVWIz+6&Vij|+3bcBxp~6=@dS?yOI32yIp`Amc3h_{^!eBAh^K$?bAU*!hUxdd`%Jr z)+Q|maJsrZ8)cd_-%5S)emY+uD`?ZW|ovjiF~$`AV90_ADoBB0w~%vz7Lr~3c5A}Y(a&U zNyK}|y5KOAccoOA0vyRPEUT_9#X`f^#pGQ5c}IH9m>Iqksp}FPgv*m(ld~C|a6p>B ziIYU=qjoq{rSB~EyYes*w4wrgz&@=rj%s(%6{xnE34zo>8aPvsRIO!iPx6X z?k5HNwuC=@07CejcyPCgcR6H@K!Sse17ATvn#;@IWWEdQLxn}kf+4I=u#p;M54|(S zJl5rBFt0Q)gQ^%u6dxYPu7g8&4=CC^I@W1fMMD594Tdfx^5so#=*ai~H+5BE9k%y- z4Zvo-Z(Gr&lcZ12lk|#1DRyRCxuNM_L99GCw%eBpzID?j$=pt?64RgSfjsKACV%0~ za(PSNFl|NVKL;P!X0`0XUH5e9f_|9!is*!Hul{*1{x$&Vefo+>pr<*DIkumCe)LKj zmz?=NyLXC7Qi;l+LMJ#O88$%~7LSLIB)nT_2gh1?zgyT!u( z%YiRHmE(_swo`;KoVR+oEGPOw-M_IAvI==tN9&DK_bUC6VQ)(Co(Q`f521zMCx@g_-h#(LURq`M;l!c?Bk=i%1)&{h&s>iL8M`72z$Em~ zd1L{NhH8ZGpFFggM2O&(gsm<$b!4RO;oBU=A-y7 z#7G83r4oJW>=vqH6$BwxEDZ5|v5A3>ZnX59+1O)1Cv?RDxMa_9ZGR$wlsi$W zU~g|;N-*t~n2`r$P^D=p#W;5z?SgN0yaf03>4sC^!)A7fH_~b($J1d*5+VyPm z^fH6IZrVDYtH0#DI5idH{t0E7K-!sr`VV1C`2wqIP`hQ*8BOR-t3xp`=~ zPv&^9QI-06Ufrl$%VGbR)h+T1Q8QOaJMi$Ja4s3Adsw`_dcI#@R(q(|GS3jHIeC=I zk2@nCF)R`jh85F{d?MU!`id-EQ!!2Cab=ojh-`@4uXJ-ShT~~aIWM#x{6tLSrwUZr zSGV!5&$ftwyB9AD@PL*n)=7HU@j_0z&9<)uSi_}-fThi`S$2HQT)m3NGE%PtaS|#- z9BC3iU{vcK7)}Zh1&yWBs259C(+Q8SFXSytoIz`9=XYyoioPfpw&~Lkg4?R3o$ohJ&r&xavE&)8pYQSm`xsp085B-c`7Q4gC7J~(g@)a_-inJ1RB8J5Ll6n;0#7oet zf?ErM1I@yxdh5y_3z5b_hNK_!PH+T)Xtfpwrdfl*ya!>cZnX?p=RX(@{{5dh;xJL) zd^=AkR&20SSOR>323xFY{`$r#V*#hX7e9AUF~W}O-!k1Y1lFi~)kG*~v1|nK7h=r0 zCO`V8fA*b)cQTct{8@mEYC0dMAqKpD#K%ZMaYWLMZ%X{&*jt>fAcs{j{;>$i*$BO% zlC=ZwlO%&hoa$eY*a8Z;pHFYUe$s#{*smHktY4W~LE%i}fI4Ki1WX#(X<7^>@)7(9 zTji~D>@$6*929Misq725C<$MU%0n#P?5e{-_C?=Ll(UovEx4N2ar5a(nSb#j-Y+Es z9Bc}vvo6f~Y}3P|KgpU@2i_IJ3XyLXseSii*qSRrhse{W^bbw|tD>ZOjuucr@t%uj zC?$d3Z;BjQbtlMAW%$|H-lvhGaupI7!-CJKpB((-^R)b}dq%)r-^tinU)8}4=Gbp{ ztt6Uh>P2}Pjs`yr*U1Hxk>6bx1wI~(naluN?px5)3-t5zWlTkLl)Nd*o)5q&<_1R! zcgd)ij;H_{hlUSV$arjGd|Srv3f9*V3+EXj2g;EeRlZ=g{&+;NJ)H?(rz>x*AhAvMoUqtq0GxN;*3!CQaT>31^K6F9!7!JU2&gFQ}LJDP}EWjFJsIs3aC zr^4Ict*+0K0}`sIzKydtQh72fq^eG8^*BLJUu7@0l~l943_V@egV(wH5PXooxmN%6 zC&R`a=z2zN_F2>%Jo+*QO5K{gC3bW}@EJx$xlgq3CM6?xQ2k7aF!ZKReLC{vy7I!YY*0({i-(5WZ*wfb_BP z0c(fMRb!n8!2|^*e-Ptv`NrR&G{G7?9C7l(0t9%{1@A-@ChI}MaiPl*sd>^Fi z`V%1kzLIp8cFL1(`T=)`QG1>Kda4pS*tcfP$tLyrX`9=%qr=m2y^3RU5cwJsg(kv7(7yRrEE$9fHf5g|5~~$d};*nl)hH_{odNoE7T@u_c|a z%U7cs#2TNKjnm}~ob$!5-#k*eNvM9bsiMjYg5pbLR&)`rg_k06CU@Rc42U0{Tr5d@ z@$JrtFW=6+TP*9p1skLEWeani_-}<@>N9zf7c%39RDoX_{`5tI7ciF5W;8#nG&3Um zTZ`a}T(^1$8kv7$*aitX=X>hF`!?%87eBQfGFpbQ!o%*c(+kg{+>q1QW@ME%7&B$h zX2e)ejhW_!K%B?95}$A)7x6@Tnh$|CG1Usr(fDn1Y z9Dg@?g?d!}kSYJL(UN9jqU^r=p6_@u#Km@bmZzMAAq{DW(A`iez23;oVDP70unn;o@bPt z5cqOLSvG3YE~~=SIUEc2zA~?v*8X!;_3skINDC;9 zORq5ieM$~DvDv$4I*Hqcry(?W3r4yxhWemVdw?BYQiDD)X;E+Z0aUnx3@fAnZA$r4 z0Rj0$l65T4G9xB3LuD1ySRO@$>HxpDfDX-|;#HOQ@Ty6~X^Q-=a@702j^+ z+@#P=BW?Yd+8!H44P$}~DqEwa%*1Ufm|0x`FDZQp%3+^uHkc^CRktG_*;h=zse14t zLQy=i!_!PgPEfSf_IjbRRTLeOEgWMe@*s^zG?pjVZEZjryJ)=2pB72UAIdJrWye4T`5b zO%mW1W~ds-iU%EX9q^qHV^Lyc8#o861E#k&y!=swU_@wGmHtGKu5ChP#T_gZC7NOF zNdjuZr6K`?syw^{S1{OGJ?T@gDCCA`a%R?w6wKOE9C6m@YdKf7iF;yzmj-R!_{69y zlN%8a6)upByWBT`d%>5yet%f(IKg*g&RD9d2T$pB0~|SOyWpf#usNETw5fryqlm_r zrB8LFF8WxfNSwhXOxl|p?4iJ9+=bt`46u6+co{(9>4fR;FVR>I91MuiF}Bn04K`$k z2nk{)9pc^f4T^04>k1R9V4#7G>1|K9NPfZuk$$adE#oMzvx^+YP|rZz6<9WxKN#{B zD!yT%S+#LF8kyGO?BQ%YMDd3ma!nLy*hx^=pA^qNhn^5^Un6=R1a95vG>J`znvSQ_ z*0stBk6CSpyMdQ?)i3C#B!fkT=~SChh^$ng4nGIHn~V7o`;zCc5pZpcJ#yo4B$Q@3 zT8Byl&%`q=ubWDbuJ7brP^QV>HCAM8CG?UB^Eoyek_fy{w7H$!7oC{2A(iD{V%eg3 z@e&bnU}NAVV!d|$CZKyBI>m|4hg)~_V3~}xC~-8GigIs!T-$( zT5x4&n4+|qt9caoXO)6Q~;oL)#ox_Piur?xNIWW{7S!8Iy^`Ir)ow5?)DNq*|P z>y603%u2_rD7VuDCA_I>U{+m&kfs$!LT-90N5gcYt~TnyH`-BznT3us$L9o>jo5L# z%o^)55B|T7ujx09V|CSxvbMZ6aqIRMF=0zhHK|9-s)J)NCM1$_RyB%o7S;BHY^NR9 z?H})Un9H{f7aZg&BIwR4$3;Pl3PNU}#y<&MrD#ta4ck=}J=nJH>R>eytB!X6hG9mL zmwB3pT5DRJw!v^=D_yFd@_e?w@%PLqqos8RT=Ny z(c0Wq0P+TfiAQEQKkx^4Gp%PvuM1}S*N(wf)HPA7^Mv*k7!gc_Lp_-%W?U<@+_c+UZN^bA266H@TJ?#_%fdwS zWdQRt2NNAJ;~lOfI<3voHf7fN;r~Rwv;VIbV9YKh)q486TbA3?fSk|uLi=DAgL`5+ zZ^F|i*Fl;Z?rtItyFg-tQ`+I?_;Bx8%J4Ajs;b8A5cCwH>&Pws@5INAw!8!0r9K_y zGA}y{QDp5^bfFpU_upX*&W1DP!r+QG?@zO|6LH+hNOtt3N{NCOCuqSaN(!YX3l1qZ zL>~_wWfj8rxSvVN^l`&`x6j#&wGcZqDox`_Qx5CL{t?uuYoc*e#;Dwm6Y$4g(%NFT z#msN>nUikcU$`R|WiMw$OG#xOFXel)-}m|h<2Y-@CzJ?2i>q=xT;~WG%b%e6HBCY4 z_4tHpNDLjV8M>}p1$Z7{u4xaW$xV*Ov)VYzGvZZz!<^2q1>|{x#fK~69JH9@wgoj4 zHqOlP#wG<)hyuK^=PlmkTTaGhIXZm_0JCp9TVUDT$&N3Tyh$ncwt`%12bJln?8W(3 zO*hD!(2gH}puzT}c$;5^4+QB`!H)V(F9Vup%SNGMc_1tmR3P!I>Uz{~5uHG;d3;%W z3q-G6ux~NA=GFLMm%NL#)L)<`JT_mQTnK#R@G{RBMbrHItQ!lQP&AtxnLhKtoewnO z|D)*|+~a<}ZiB{7W81cE+i2`Gwr$%^W2Z5iWV5l|*tYTR_xC*SKd?LVnS1V>d(X@n zIbifk@2r56kw^$JuTIBkF?puIe0+O`=wb^V+>83uszch%bB@+L-)3)ieBRVlh;W*J z?-t!DSQQtmHn6pS<@Yd8KkU3SqYw=p9(y=S0_6x ziu`TwSS^Rg;+#*DdmR>e)St2X;vtnjMhPSA1owhZ9Lc75ejkbGycU+-dJn8+1@?m( z3!B+M&t_q%RLiJ9gkYe2b%$0+WBi|J25Bm>vshNk z@G9XPkK%6X5Ht3)Kn3QUmhW)m{qtV6wR;C$GoQN+y|d5BU_Z9OZXuG%62#ZqWbOTK zjIFgjgOEa719NH`z>1xE4Fx;M{umxFt65W*;OV7<^50f1XL`onk4~o&1xrv2DB7M2 z-R_UQp!Exz*P6cYaR?u)ms`c=z?gmyO?IwzPOroT|3?xfQGWZX~L~D$Y$5dDNtt5*l434^rMlVB+ zu3u!$)==;af~^vUO=Ri1JVx4?!f>>_!hao;`|fW$YlLCm!{2|WxZDOy+}cMJcim{_ zEY*>g(dEZR_z;-A*D` zi4~WG{2DuNFSX~vsfFdl zUD1p2%xFnJAU;mrO4x{So0mg-wl&OfA3*XIl@bDCKw?7IfO$P8e`~s)`?>T|44cbl z`9~r6hvl)+fR?Dn2NTxc2*>+q@?7v+ufL9@2{~1089h8i^CbtDiIgED+qmhjBx){M z*vv3^&#?1OX=gKo4GkUPMjxYI$DaH`PK6)AFz1i?-dY4V`q$|fh}_1u_hZ|wbNgAn z;wW3WKZaziYGUb|#BKIk^9J}=yBKpy$Hf~Mm2*>m)SGpUzL%;@b0Mk%NAyDK#YDh)KxZ$<7kr8CP#dyEctepwL!h5BbI+#2JEeg?gHJX zzGTgRNxD08X)3rog>lic%o%o4Jz5{ew^qG!Ylg^-^}5{g`79DFVr8C3B`34aTBuwP zYZvTI&3`^Ua6Jsd@%ph$LRtayUA7H;bl&iO{M%zD*b%{VFJMjg6K#KEgE@~^fGXj# z2?^!k;UJOPnxq&4+fjf|701|W{@qs=+4aLfe`5aRm2S`VaYOQG;ubBjE=ZY7QRe)2 z_(s;EzA4DT7<##8Xfyd6Tt=Gsp`O<~#U#LIus%(m!h@0GfIU-j&cO{K-nvknO za5W&to(N_Zecc_z0&l)pvVY)@2yOz`Wp?M3FlYj{)TZ{N-Ag5 zjt{BL^k_)Nv@P^CLHI?5Ybo%PJZ;#$ zH(Q3PG|KlvI4RP*MhX3@^_;qWofr(d+D{pvqr-lqxFJd*?l7wmOBz=q#Ji5yFCwo z@t)Vioa5{Brs+AUb+P6~cCHj2-y!dEL57l~IGAyaj~~AKOcHT=E`MIE#ydgVJTY5m zu{wJ`rLL`;!W5dViZ2ouQaWx+rXe+5!k#={Q59YI&cEb?ThG4ZCEX6={rLjA!7{$5 zSg{dYs*6tL}4<$V8`is=dWYx!){k_-nv6w6Lcr=4YocyG^fou~vHJXh_2LDwEYm`Rq zG->I(8zt^}GdzPJAy_sx`EIzynvc9#QdLa(j6$y<$;pzXGSp^v%-}8^Kpr3Dy9kzEgLy5!r~3O7QtTsU_WLw+;2vd;ueTld7)Cw0 zhv}W&1dkUkXp70Fq&Ncx3l@&^|4)!;J`LF;;Dp{F=6xwitm zPP_xW;DCw0M0gfik{BMai$NRT`R{^U&Rm{r7xO|d=tj+2bm)F?gOdTxQbH%Cz4SA_ zYc9`x8GdtLgYx9D{mG%;))mX?P;?v)*CblB)9|WW-vV3e7()~G{Cyw>YkB@)9IsA@ za8;6zUE0~oa#QW=Sh$u1= zSoQ0laBt~mx2@nY30+CTQCL==f2#guxG|^LZcUXSND8P!Hvtku?q+Z8338RBa{0X6 zUqU6e&5&vat%;JbQe0oOQ#K#>O?bT|jgAz43GAhv_)WZyQZ>~@;HvM$+bCvTl0Te> zoKAP60%I%=G$`^QqK*ik>j0;x()h4DAMh{O=sI_W=+ICn>91yS26a08+(@|*xx8t} zmp8O&NBQgW8H_vp;%A3Si;C}^$eEJVV{{bE+X27*HpAKdKcrWKj+_$J|6p$q>lqe9 z40Lrv5fH5F1su&5CXCLV4m!9UBj67XwXsg-g#po=Yb=>LYi0jw3z06=>gjm=*K=dB z7@52v%2kqJMiLCO3-9_l+a16&6MYA%z82z`D|hwYIefo@9%J27$V5QS9re#Uw9|&m zeq0toTn`&5ss)xKTtIBbG*7rd@y*4>UaqZfY5C6C`lo-UVnMb7nU5J(q@TG#l!C(C z3X*l;eH;e3ikD91$5?d;<>WNi$tSerLA4@CvCrjStA@TpEsjAwpj9Cu`Oc8zIatI_ zGbtVh9E1LRUT}}ON*djQ(NsC_>BUC7f(?;BzV{#sBf}}}dmDLYRhS>y*L{=p5QiF( z$E$DoX+E4O-YZ%uDlTKhYCF7XO2wcvY`dLR!T5eTc0QMS@{2Dsmvc4{=R2k_)t`eG zw)W&^*pD_3hEgg}Sw6+jE-$8oXANe=X|-Wt#(n1|ly3+x$+Y#|)IttpS!VT|QBM_T zLJ1E$J&PNfaCLY|!&d`#(~;tc5dIa{IcZrpS0mesYHpXH(QO`%71fXW-jWCcQCr7) zpWn=3N|qNVgDGJ?%z>h*F?@hUa@3^)-rI1Cn&K&cuhKPrT}p}RaPM~%Z{Q5(r=Yi< zwx^Dna@ovxMMxxxs-~@S!ms>dvcgW{j#CxmZ-DFo3#8i!?>a%VoOm~krY8`iMQ+Tr z*vfJ7cx^Y#gbP#HHlZ|4mcfse#!}2BEcfX3An7^7!<_5xnNc=BuCeRXP}L8Lg5IfN53UM3q)y$#xS2w ztztLw6&50KYL!;J(BEOl^Rvvf`wC-BuZ5JF%REOxiIR>sZtt%KGHa&1Xai0tySC40 zFy2%exj=JExE?^x-O6M@ntD?Md4e_TQfYf}y_L65x>d)8-5;-89B6$OLUgI;%p(;xlhFDwj^$iNL6CpBj3;TY_UZ^D&7p zaW|=Gi5{yrwAyS})QymPmFuw3E-yel^njd-d;%*#RtH^LlH&(a_k@9L)(&k7jserY z-pgCM(tw+Ph(3OuWM;v($|Y9jh5a)#Jo|Ah9F;ab$|RA0#oOP9+CoW^E3e!Yp}WuU zOueQ-(Fr`K@9obp(m;F3f=<+mlat@m$joW@w9cw4xt0Cqx1VYDEcr7=D{uRsv1bdH zQv2C5;AG=vvL#%~=kH38(F51Zd2D|RRi8+--ZAPaiTx(oQ|*HC>)feh)=-y6P3|vw z0HEJRt{%yW+;Ql}C-67?^Ga8pfVSyezMG1tFpO(5bx3^pg*sJ}$A1yZY?Cu>ta{0D zc^13G*XJ+T^I?m%ubeAn9RqvB7K=V@CA*A+7l01lPY`f6j=}-GO5Kk=E3VQBI^Y#m zJjDIil#U%?KJc;89>Yi@7-EYp?@n7E_jO65@3n>hEqa^xCw;CQHF~U$BWp+n`{Ze; zN^!L?_TJ*+Pw(rZtSHblfi()tj;OBW;L(Nnkt3N_D&egp^qRsw2Ui%@)#PT!5!`S;R~K%oRuDm( z#kl9I6w^EKHl84N3%B<@&*cQ@(CYM+W3k_b$NJM8eB{ky5Fs98$oXS$^vCLHAqfnd zAr&jy%3%~*Yy?nwM14E6I7jrjwzmorsT8zscD(KgTTj&Or)?<`@^nvphNTdb1HHix zUNSO$6%W9XY6$lw#R6KRkNASW!yps0)2H9O!-^Do7_ZuE58{NbN{5EhJn$&LJ2$~< zR5`me4BT0PhUUepX7c4U?(o|@z^%XYdWk9Ogu^;mr9yUp0kik_#2B%FWYUCp$TjOT zTC;kPBF1R?JI~Lupbbx(KYb3}h>t1W^hTR22I}Dbri*vzCz=#I4LaMDB=$%m;NR&A zj;qC+bs$c#Gbdi$3FQ_+3|IqD$y8VqH*6*3jO#w>->wEljAz_y4gRZcyT0J8n$*vO zkEY(&1(mRpz8YL1v0|ywrWP@6zis$%K>SVA_ih30fZ^-Y*11S@9jcF1fP+B-NNJPT zaOE)5_zQ2$pPx2$!Z*a(-h{x7nIw3NT029IRtqK*?(i1>^`Q(Xi2}V+-pG;DUz|C(R=G}4ICywtoH?IVopg!+UDH_ zqU-1_`|8W3@mk9@Nnr9fV{35EjPQ1n(l1*8`H%!_e6Q_42bt$X03$x64p_fPT`7e> zebiPO!sM~_9w+BiN4RIQ>JlC<1woxWivP4UN8LPwsrGEXSU_Kup1o`Q-o2mLs_Al8 z7@x29x46A`DN4LM{bZ~k8=EF}Z%-nT4g^7kA_xkZ#UeJ5&M_t#^uLM$I8*$dGEzC7 z3b1YUR`l1NEdI;BUS78v6yL5K*hnl|lmwCkFR(xa=q-24#I9gT*_|D8RjL<`x9*lM z8~}Z*_J_L<%y_6V?qLufuPIO5Uwzx=uaZu;sgA>x$*_pO0AiG%6GqswCaZSPe*N4r z2Ve_blb2Eno^@IgEMB}f*UF1m^z=A@Nt4mk4(Cy>uIvW2&PK1j$sG?wU(h7?2I}vT zi>`hElsHc4w)nPcxiRPP4VR8~eVWG}!FHpdsWNdPEwrPZYxkOn1v!J}9Ll57le}$m ztx8jwwt&IKA5;Y_9OWTEi|QK9wu*Y%0X40gB!liMNFk*dKy1i}F2M8E>vq_E^svQU zRTEfdiBgm@hXYjbtSv>1Nf~xmX2f@ohe&wLhpYDoq$q2L>Gu|!9xp5ADAe`ri@i~w zxRKWhwMN>OaYMaEEl&Udo+P$bSou@+cJ@aD&1fBpYpxD#u6(ql*c z7ox5}%Y5FiFZyZ5%awx596|t{O71lflC0uTO4j<%ApO}Y5rh^~ zaw@Sqxwh#BjjaZ{akD@r`W$m;2T62Mp1Dl!k%&Z4ch&wdP%AB$zwC%mxDRO_!8Lb( zz3xJ=v<^}Zws}}JD7cjZr>in_fjz=T;z!WXxqb@au_nol29>AY6;|J$q`ICt%rS|N z%79*hV|Ys(IvW!6Kd z3mT)Bpbn!!zX{vdqu|AZi34Lz-%pdd>-}+BygUnz@+bj(TGZ=cb=Tf62rcu z(foOVwInG=c{K>+U~uKIIQ}f6E1v?%k@H)kj%fUsc03dOh*ny^_4bD8T0K1YT)Y3; z8UzZU?TvJhRAj6rpBLQRA&!c<&6)J)kEP=>1+X1fmBh}b;(GsryvbWeqs`*l^uk2RdsZv)w7<}uK)pQIG2zaXED}`|l{0~VF*e2S>iuP}gOZS+e ztTa+vZl2Cy%C3bbR3JGNX)g;ocRhO%OBTm)E4Hhmi_ULX;O^w6URV0BN=aWS6*_Sj zavt&u=By{U;uQ{3iFX_`YMO(6qkqh@QzB0kL=tI+1c9*VKdS}#N)e;&BZ@M@LLC-T zJFT6Gz1ss2+^Cc$$`8_18fl|hso5&|ldduv{rBli9rPqVOslC)@;OBLlC7e{TlE2t z`@q}9EA4}x>p_e5+qK(f*d3;BJ=^GN+ep6|_len`6sXyl$r=;}`8Dud-+vK0Ly^9> zB}W~bUtu38D+*7^G?0pnKw&0r#1d1>d?AH62x1QEYmsz;4ve~^C<(dkbZJV_^|17` z;ykTrO@Zzwx|96-8kO#2H%=)*&g19A8p5rl_+=T~g0o^GfJV7KRBCTcPLklUnh4>& z6g){g3hBhDMgkbGF*rcexkpopKmKt`-R0yWm)|+q5qRw?&&>?zs@tuWEuA>Ei>Q%- zohh{+m+GBxEE5&}QU@VOJ>@%&yi3MCw+?v=FcV&Dn(c|5lqeLh#?%*_eglxG#;87Z_>h}o%a-bf5TMmc0(Ky z-e^#`xIEj(y;q?H&%JuA&g*8el2+A!$B9uczs95=!%qd+lkFhH$?06%We*0f^b=bj zz&}={lnrkPb)W99T5|DP@-i|e^r2=IueP^T z1YZq*ebYuM*8cV2T-Z^wUpt^tl+vau*{E^C#|W|~C?-o{ba-*&W? z&@>H=^w|IA`YocJDC7IS!Yptt{8E*YaZ{B7zrzm+MS!YBc8kMHy61qaa8HF&3U@Dy zUhhnVWc*_V$9%kJ^{4#t^K1VFLobH*j5cem{X(yU`31NpzneQg zv zUi6mQw}ovLn6Z+S#x(VrtXk>>%5p1;11^VSJ$Ddgp`RQ*B?FO86rc#E9-T4dQq%(( zL8Mz&`bwAa#@xdQzMV0OSRA$OF)s#qmN3CZ$Z6PXt>D_5@XM(O|60slqHX=Q1{E#G zlfa{BbZ&XPkvioQ=`z(tZr%>U< z%WrhZ6~SDyw8w}SQCo^b?c{$^@g{2dNF4`Nv#gRcT!v5tAz7K$O!>>0J$(CdhjB4n zEo%Yod>M3y{M*#E3UARpjlqbLb>-ivQescyKfh-z`V#QXtdUy=Z1|4bXb+>yfs;Vo zR8|Wts!4WhC)7R@ZrQs#FB`)iUPU8cce2{r9S+tteZxf*E9A-F;vaG*+oy~7Fjx}t zEy26aP^|2@dGd^c%-cM$0TtxDviJXmCqflOhuB0sG*Nj7_DvUF-kvs(e~cr`0FgVb zd<-t3f@cj4b4(gaO5rETG(^^&Nu>06@|^)&Tx=RlpCp1^8&1msGW&Nqw#E@u2wFIt z@@b_tb&=|XbHmP-{5nHmJ?)K@d&aH1B4Lzs_p3E&xhcVwsc>I!20Y0lPA35A8?DYJ z&mxpxfB0x@L;8I#f)~02T(W`gy+OgmZnYvYc*4VL^%l)A=~%;;B!rTH8d zQmDqQkAHiw&7&7x|MzGNovgNKhAyrRt`x^v%;521t7m;!k$0zRTXul_tCh`^QGQPV0)8>`fj* zlXc&C-tg@tH>2*`zgY@XhSM$cjUvY3c|8n|P~PD7D51B#Nq48!M{IXA6MZY}KRQWN z&B|sHXgN?B_O>!SSLQk~{O(d~xE#@$$5CT{Y5OUJTLO?n^~Y!qZdpjAiE*P(tJV(> zxqIG|d#ggB?AYgAkh`y<-C8VlB(1znAYm3|#QNe(R5U7Xl_j=KP z6pVwM(@a<`HcD@jYHSzn&5qAQHziK{BaLF$fOUscWlV=OSADRkFGew5nI(yVGj)P` zj(d>1bvLw5e^ole8$|!{+_loBHVHV#U6sz zxZ^eFPH)3>R6C*{qqz`oYDA}k6%ptCp3>@hz5bI;%9!j=@S=YcosA2TskZxDf+h0t z`cH9+8kJMyMyZJ{S})Skg0SNNkKUKDC3$^y z^V5Jennl|FA87eoPx(ymKJ zUuMIIRbu@ea{W0@xxNms#{~7Vixaif`^-Y8wP(iAs!PeUH{b<5B>>`pher<^rVfl> zJQj$Cc&n?A$Cy&Q^CIKLHK{+Vxu;J(kEzX1c7=C*dHhAcGbBXIwFeclNx>5JETZJ5 zAZ`x66ARp4S9(71^d(M9p;uNQTyNvAU#;s; z>*cGAH?;(9N=St+q+dxq$w#l|?ciB*xyp}J_7=bso6*~eLj$u<5^6Z%ta?~{-wAbu zAF)#PzR_B!+2@ncOr#NY!wR+~P{8D{eXC|%yNs6G=*Q_NK4<{w*P85M0#e)baPb4cu`Ri;n>b<}p2rll6FB7w|% zWaXuq_w1A}Q_2bm3RSzDWsG?8TkMXmuU1a zC#=5#N0;lPne)2`{y&WGa zQXI(FweRLC8#Up*zVS(WN*kSRU}3H^EjFf=X9v9cU0-W%pdzQ0y%MboTg>(;=kiQK z<3~Mc+b}_#ps(kY>I-u62V8<|wG1S=iM%?D$~mQ}erMtsMIXyQ@~O_4Tl}T2Y*g7x zH3(O?T^zWN6C|FZ(I&H&kvL?>3F(N0f}!5ptOD=QNw#eyqOo_^gaaj8)2^C`tMuG+ zO~MbYwC6{;z?Q`CN`V@r<3Cso2|@R_)}xM!2V2HjU-#(#F#%-iLK10)a)Cb%xTAHF z`l&?i5caPM6#z;|2Nl0ws?fb!p28+wcY=FQhw|{;;+@mzLH^?qZcs1aMS75Le5?ZH zl|7Cs1b|IYD?&i@NL;b(^96>Ald_7!%5lMg*c6joGm(LOHFT7{I%%0&ay$!Rg(PlY zZ4E@_u+p;s(4}3~51?3I)Ij{xS;AV-sH+l z4cJsePiGS`Bwotke_f^8h)i!mlYqj5am6(+i2n(u7CF9 z0mn<42zbJIJ}*a(h181@)3UUP1Jgfn!>~~kYZe>ChV@^o|Z!+_zW(Yz6qYJ~}T z{8KH$qRdWsQqr@kHHH z*hh+V37p25`lS)})zAg|nPE*pDMyGtjH;zFduS<)gCDjRX0ge&i2o0p5iN$1i*?FCG`f+XY|i>gQX>Gx-@5ax`P7dsVaClj7QX}y+2+59YiU1A>Eo0 zB5JfQ5My3qr*%NLimXXpr|l&p#YxAz9q|_~jM67>LG`L)8%5DO6;;6co%1kgVDGOH z1vlcp7=_;4@?ru+OM0+4_>&V9=2)RUc;#PvR{pEP27s${x z#`+}qXCWHQQV^?d#M)1}VW-rI8D63>(S)}_nk zzoX5svrV7chx&jI+Y7(Tm)@Qw!8d$i3mDgpOe5(s{2aJoJ+%Fv5i>S$r+kwRSzwVa z{2Yu@$Ncnkz8~htk4vbxLld-6M}FRA{>Nv2Cfg|RL*aA!u}acVj*y%Me9Zv$A4ubMTY>RAah36KkL z>ZkIc2M@Ms&lJ~;AA`+tvfXCp59N*bXUFQ{FS-3pz4wk9fu45Q9kv-#J?&nI6J&S} zXLoK!nCS6Sm+RR21(9ZKp^_HAdX?73pNy^Xx02NHu2GG>aLl8k*R95iCkFo`Aw`v%6Y6~rq|vUw>l8NyolK0Fa5(pgi)^)XU@Pl546S<|I;rm!kjKwz zz(@t4fX|^XJV|A8|AD%~@PZ#7{(ZQbe+1#VC&OcOuzbbYj2g6}(W(kbi!GXbAb^r} zlG@0J$NcXq@s03v`MYIy^VG(QU17adg`#vg``!8;!q%-{n zm5Y~+Un79Q$d=;S)iB-fwS?7I>=)|l-OUqb&Op`I`dgQWUbt0u3zz^e$m)#R-y zSEA6%2z>5i(+o25i$MPwuk9_ddcl>zy~=gPA2F^N&GDZ_4|3!|pW6e|_#Zj<<-NTn zZr1)$_%}1jus!uz+L;}V>WfW^q+vZgf9rVD?Dq-GC&(zW6)H25VtOC?74(gk zZy4F;2H1U80*rgJN~S$oRb+j#;;is!ZG(~#qiT*FPZ|NpD_q^G0)EqrJV$m-Wpp8U z$Tl|Fx;6Ui0`Ep_Z;1?cTYe8b&xha-+-f zN^C%EG=E4;U`1x#=B48Ueli4^z#-pPws$Qwy;Sj^WM5;k5tf+4xUWLHy>0fLA-6Oe z+NF&I$}S553|JN^If>VF;f2FN&Jr(Kqd7VSI_-Kz<2eHiQKF%Bx%(UPB$v`mMLBzT zVnlg1Rx-^6o3)gO1LurVQQLi77em0=rOPzo&MJWOwRmU=wKWuY;7yIR38;uEisu;H z`f6QvgCsK5Lqp+}j1S2nxg?H$tkf*|alrqR*wg%6zjK8C-EJoRIFlZe{I3O^t{Ba# z)!g$W)nT^ZTReNjQMSb%P4m0!3$VAmh16>xX3YX{GIv#qGRR^88oMaJ>(<6rsmJTX zb814vx3WU24wiUYK=6j(dfDXsG=V*#&*?A9bQLo(PQ);N0j^)C7B43nKEA|mPRGCI z@%cA6^*E8UYxSTg9!~xUdlO!V5D2z9UU0#c_?~ieoO03=n=P}XKoA7*(6V%4u&vn;wlxr1gIJaUC22I&MHQ9;$oHU#!)&Vj{3{~pFa}p?~)nmM_nLWUc8$r`u^S@`0KT;n$B*wzee$C$t2Tk#@-EI({~0HLw9-h`{|p18AJhfS#qSRi3sR% z%^HyV?Hy)5j~!u$>(lh)gH0qXk?@vKE$*8fNC7jpH1MPP= zV2)y&s#-cN3f~Fq-4>EbwFy|uQ9CVl+riwDxiAvp3JdUcg&TG|Xhlcl|b0IWy1G)x^US@f<(%*M6 zIlzBM*A4uV&~!jpNPs&y;|KYvb=LDjrJWGMEZ=}7Dahm{5d7j99~&)|J}T+QaJWz3zQ;~0A zg+y?Y4G}TtuDzT5HUD;0_7#1@Ldp8VKd=t7v^l_*?5Ni=%b!y2P{6wwF-xmMp#mnJ(lqV8Fy7s;D`heKoBz~$nYmQ zb-VLQCh?3U{uId98^_vn+t+(G_*)GcIb+;VvZ1{pR5@*`Kytzgu3N-T*R-$Gr?2<% z%X)q9u!u{(*Zcu_4_mf%<}creo1<(de%Wy?2N|*X&WUjx;%*Ax26|R?z(uL=VLakw z{6({5nYtAA1D3Q~Rw$cs^}K1(Bi`a>LWrIAVDSKa)c6Oqj!$xWWDsY|_=lCfc?c12 z2JgpyuIu)zI=4`7*LR_&(szgid>g^Lez2+KdJ%(iSN-~v7^Y17DW9Ns`bGddOaznB zok5O|z-BKg+puIs{*KNE?{Vv2N6NKXDf49QQ zc(^Y09g1Lc4<2nE1yv0aNFk0weH2B^UW8)<9@?iljr{IMi|ds>aF-5L?8EIe2o9zN zU1s#Xh9z;d+584YU~agbKv;t%jT&Yu-?!D}XR=qKRC$p*n&Z>=KRD-rceyC9$j{Mh zXubB*y;`C`GQg|P;Q4QyWL$=5NpVXP$V58Ew*!2CDBZhbqH-loj%$SwuE2}i{&^QRPv3Q7X zNRH_qsSy^W|0WNu#muRdV{Rj5r1%s*mTZToHwvjQywQS|3MRhH3>g)Eq2$eIT=w>* z73F{7(hfKL+sPlae7{{(_rwL<69nv|fIFi}H>14f-xbtMxGFj-kUCS_Zy7BWCrJe=3ts~inxF^#3iA2-MI zp)GDZV6jZi z(eFgA0)S+Y`{ba26QjX#L(l8&x}Q#oC(Rw{C=Z@82AyvihCE5+Y7vMrO0Uh4L+rCqjnn|00M;4MpAa+sLaQ zUD+mnTiF*O;9&`|yQInYoen+E;};9oK|SPn_o1)8&MtSpak>%Q*8VTLu#rWDM*_)7 zx3ZFl1%G^XxA^_H169NcLbskuLta0l&|H^mWyQ;9($n@OnWJbaNMDYn5i0I^wDz{r z;5;x+x#ob`)T%U#8*ri=A>~A;GH(bbsB#mU+n3EF#LOlWo$7bJ78*#QWw1_3v86Jk zk0?LVF3c^*B1m@UU%o3Hb11Bv9vo{T1IX}0Q4(%QAkBO|73?doZ(9gtNNs~-qGAhyzDOuL{EN2iXH}b4p~pu~O5{ZCVMt_@nV<^4*MwGDj2%bE0wimde*5hG z0>j^FcocpD3swx`t1GGnd6l`}wrXV(U9^!8GVkZ-xkuZzWiM>n$2k55EYG=%=2R`E z=G1jR@Y;u`co!&G5J^o%#c|~>W0J9Qn;U(zeZvgr$yp0#L~7yUJ(j?R&P}^vz;MWt zBj00E@u#0s=Tw)VK{1opma&+YB1syW03(vBmASI7r<0(-_|O!|;6^`Z0eD0l`5UNw z&;YY=%{68F{1_@fN)hdiHQF?`g^j-4D*mkdTj0Pe)bmF0ihDQ{+jR?)3(%qCMpQQI zL#TaA8YH3@mZpcn$OrS%vOIibKX=#NRByc|XcD3?La)UQLqfO*A}h}~(Q6HmZ50g|#`B*^?Ffdcs-p-$${A z&icF0ZXvIX08L7pynM>dk+Yr}D)-B1jcU<32ZGKD&pIa2MhU4^&T0YZ-wC>_i-}j2 z{+;HWTjmR{=lU##?<^btbgs9S{d%M_e0qMhwh``tUw4G#d8wS3U&822AK815A2l!rRJNMZlhi89zBQ&`fT0*5AR zMOEtLtlk7fi`H{{_EIO39`sh7D56K&8IcRmt)+u8yizNNoh)*Fp4}0p8&ZX&fJ9)FL?9?L1kYp*)wcR&6;7`j zrG@U#cADTnKYe*!ouMi>C z)Kealgcw~CEvdd@|E2W<@|V$C-E6%Q4xRty^5dtgcg9CXIFBi6Fo`#ie9$bV@3&iK zAQa6U9n;pV{yjm3Gm%+}=D}7@TI$8NO2xMb9;kf_k4Fg~qUMoG!S<9uWqd>T)3E_! z!BaoW>a;&+#=3P`d=Q0xo>+;(nJOR+pC9U0Ux1Ami!>R zV5z=3f^u4nU?v|C(Fo0dSrGbNvMsvYeRwc^ zl!#x~%R}DX3}I!t@&o_8qj6aa33|Bh@bw*q&##wExB7Iw$a{)+kGUZzq34tB?42Ww!$tX@*4#7c2#DhDJs0 zs815AiWxc1P`yCESR^a4H*~*QI=oJL86UaHF26X{^MBnHs`BB{iR~3J{NkV|VtLcX z0g*R264cKSnvU+a0`lV&L(>n5p@Nq*=*S(zoJ~J2s=DrUn#4a0i#OR_2W98CPv!fM zsh>cm-V4>Y67T2Fj*F1h$Jtc{_?)hwYXiTl;9QkQFC#`8S0~Rt(^i~CEHHZ~bOM}7 zp_>0c3*cWv;Q9sOC4pK1Pm8AhOHOGm*LHHk{OX(DD%e}KjChnYPh=b*y=%>4UXo}WbwT~AX+EZguiWF)7IC|3iuQ7iQ(j+?7 z{9bHlJ=p>U_B(A^BKfO@ubj+7vi7TPUm)}tp}+AZv;`+SQQj)~wAno02KuvVK-l%c zd*n!bOh$sDjDZ^Xt{vY8vzF&=I67)g*6$w83iye-Mev2HX z*-8g5(U8bdxj5s5T!~J71$)u-ADvflWpp9qJ_@4%TfI9PZ<3c*QVm8vw<%_KBL`G5 z{A4n4`=u*mKch@=?8#ZsG@Sj2nu3We3Ilqe0n#iC#Mn$}UMySvVhfF)Uk=F0ud3)? zL;aAa{75Dx8FAI`8dbo*d4hdAWwi^{Md_|@FVR2pf{j@46w`MzM~CJLRcLF`jdXe7pTqY#Yfnm#mJ=b5Xe`H zZ)6oPW$~oX!*-Ad`$ey~n}FG`;tL(&ZxnW2&_%xwTor1xG06sg4+pxKhnpTV*2@Cr zA)kzhjrs4SUl?)}Ya`b2=;gR2^PbU#VMb4hASGe*IrbR~c4Sw}k2LZVrc#Zt1Q=Nk}7|N=bJ}cXta&cejLecT0CD-QeAPm!Ich z&zf2@v*(?)7t$gHs`)iHUzfB_RL1_?hnH*ztQ1-bQ;D#_V<0`?$4dqIDtlVn=7J9U zU-e(=2G_T-J4I)XU$B+WBYRMLP0V3z2GxqZK)t^uj!M4Q`6P#BL@Gn%lvWpPOR^wz zl$pt(miU<1t%$%~rL&8uK=v3p_gwAEUOVBo-!!SOnfsk8` z@Y!L{tr6X4X#5`a0d1+NA+2wsxb^$UA`~Mc2$xx4*&Y)HQ{KgTy8GJY{A74lNLo1$ zm?o`xN?h(kZolbu;J3kW^M>OyWbK16;vq(A><2G3M>ShRs;C$7K8KyHPA5@;`r4;+ zqXPXgE;0Je>wwjA0Yf^nuVihAz2;S*?NrTIr7#xtVZY$t5?acQ5*$kfW4rAP>T#~0 zc)wO+mh$o$PZLp_+}1uKK_5XUgiS^Nak2ugIs*e%$9D!$V^3$an{+#?o`4n=yMtY(5O=1tGj$)6boXU7pb}hb!4zGnQZ0K2Wc97rB$5X zT0MXYrVqI6+onsSakBWv!ecazO>PC#Bg`6Qy6BQ`ZTe(ADjQZeJwm`F{le}E)9=e2 z(m(YY84Rlsim3>J507ah%d!z zXV&Yd9_^s?yMk%)yHHY-+iB&XZ`XKC*TIqRP#*OYo9UT6G4pCWKoqt^&U^cR4h|W;dh60?N@;b3Y@R5G+-O|wB6O{W# z4t8>%O!@DxKBM4cmNlDlZD@!QZgZdmn^2Us9KBO|wKGN}#QP17R@R?K)N_0Y@$0zX zMlT*Cx7t`6UycwByzG}D+|5YM_B{UW`cDzjd~&I&vhYLJW3aN%tqNqjhxhRa*I3AA z#l;cnVaMF{RPr4{X!U-0L8>LE3Ux|N5mb1R9}BIh+NxK~Fa5=zu6I?bw|C-wp$D%v z7N&QS&VEvR-~8PGfLPmyGn_A#yinRuI?$fYhbDE9b+DV-b+BhpZnD9hVNXCn7FBXU zuS){xU^oL|T^dEqP^KlZCxiCq(K0|&UY;C-{N;y^tEbEf-shY}!4PFBwqzI9ahslSSkHC3S zLFzV|bmLC!E2Y%+9mG9kx&?O}o=Tm;t&;#V!{yr|L%)NVlsk{fws@%)G7hl=>%XZX zah|USv)dyD_7#ua&eRqlHQ*I~IX%I!`b-VZQ~T@>H>n3if0|I}@;sgwork+i(vZ|} zLM&r{%y!j_g^by^LtO(ytq%@H7QVDunUatT_eRy7gVV`)m(8}+Q^)~$4{rnBEX`%X zm%&MT>Z`?QkaoNCh2QN4GpmT$l*_z#(_A@z=ZN7nlWXfvTPojXk`g&P46b%gK5^flLhji3e+k zK9&6RjD5m{P1|;^^X|VWG3XCw&(GZ!@ru{M$ldLxqL>YTFD7w<^R)zhHr&o@mDT&t zz}?wzH^8UX)E5y##CthtC<^#8zuqU3lI?lm2Y6H0gne^2!XBA-LR;qMID{ZGs_Im^ zV@Yrok#oSNfBc~{B+Ss-)TGSSX1A~G`nPQxV&x@fKe<7EeCZP@^EKk+$&G{6qDu%7 zJHu^6a#SZH7)s?`ho^KejQ;0F)NxC`Euu0(5kOa-*f5;^vS3FVT2iYg=Ys6NZ9U_1 zvc82?I@K+Ae=$Zg)l<_6cK&V&^%dT4<4+j#fU{yde{3r#XzK`H=6rX>NBi_RbMPUB z8YqcoqqTc8?4A=>*k2AUR$O0WvfYI24+mB$A79&Ch5dte)|F=m9c%Guua#P#&s!|y zgQvVlxBbBx-T0_lLy=ucLgn?8u`v2!vi7ZstR?B;5ToB9z(Hbw9#3LYM^jTZzVq)f z(<6a{vfu5jCuf0SI|IUUd}-auv%=G+`NtRJ|XR)Q7?+)(c~6N(t&2$ z=aTsw8Zytm#jMUqW7Yo$;E({d+hcD(OQTO&UQk%$Yp|XDWOjR%yT)15g3)%*_Z_W~ zluVqcjK1+MjfsJnNh-#z0N2g?#}~s0=>-_wneC{7xrxtO-dUqP$g-8RR20^*wLy(M z_R_X#p5F{~Jp|fp39D8;2G@h#)?UxEgEvT^kq3oy2`;b<2ri6rG^uIRU4qxeFD;~d zhT{-*H*s~xZ7xEBa(Hj&ZX?4WMrVK~tl_>8IBLnSYpxa( zj0yDRBn7Ak@6WsrN$_5!2!3t5mXyw9fD1>!z`3@qhvRa#lh``Ig4;D?RmF0_D0!!H zl`_u4iMsm`E-iJSUR)pjeAUdUM1dRAcUN9p5t^iT6_Mssfgkj(f{F(F!ByUM?zR** z#UL#=EPGd;_{RVZqvDO?;&{j7L?&x`8zQzeALliDw)nC((}VLlM`Udd3v-039n!v? z!7f+%9|P_Nf*yBew)lbM*cbWE@f7!cFpH4Mk(Dh~O3ebngmuV~$+6K1pZt4JML_lfBO#(6bN!ZIlh*WBixKKdSo>gcdUKW` z@)E8~OOA3l34wpz|5A6pNJ|Bb2^=!|AT!Q0Drtl4!D3U+zGes^;UuS6xUjsXj|uG5 zAep1o^ol z%RS@R9CJnyo{;j2d|+)6<6@LY{5;xj=X+810^WWn>LR7JBZPf&ahdje(|WVPJuw^X z#;Q_0;fa!pVDgD_1)H~zA8(hcRkx0amT~O@0%``(9b+c}A-IkE7ey+Kc0QE{lR}y0wVd4zYo$WdfZR2l_oL zH$JB@%L=0nc)J;y7`0_nXtYn%X0DU#i!&u-+&>p67QlbzI7QGjX zq+>YQ&yb*XegQE&{krP4YGs{QjHUtfV`+-A*g%WW45FCwAX_GDAGX&JAA~b$tEu}=|X}+d`JRkDX{z9m@pA z{Zji&;whVc%KxJ;SYU~)2c8&TA(Tr`r}1jVe;M(SJ~lOEhG%iWC)ULuE6yb#+ilGc zM4M^-WED^vnvSH^92k)WwFkz>O4@ptRD_^J&l=BlUpp=oscoYMW77_4vpc_R|H}V2 zPLmZyw`?YcYq+f$3sO9ljOlqZA*6JxO0pnC%}c*IzFlgv#VB73Q|BgvYIkm585_-s zWs*&0-V->|*X^0(FwOF{bt?#SxdywTQNJS(5nDJ3G5jfu)3hA856EJ}UCVadi< z#-Buf1-VDAvxc}4wmKfOVwcNFj+4y$$?th20Tb+dxz2AgMHj2Hb(k<%Kc ziLV@TaR0C`HeQ2FX4kwIS=j0jvCUgYJn>+X{T<~CpyNNLD3rYWyw3Y;ULdi>U_LWC zwXwn9U7H^B;WHb;me5pg(Y-cHu2=NnS*1TkreKtiHgTd8{=I@e74f>`Wb1> z5X_FF_Xn3>E8IE6;I=*>ecMsNZ1iw)RpXe)druU97`ilVp-za#vyEn9JoYn;YFnyD zTEz^mXbno>sstlW{}Q#Y2`ly{RJ&K#QdX;iaG`0qU>koQObgkkz{f%0B6U=B1&Q9< zlh&Bs?j||4;aZo!R<@=OeeS#t_uUe055}eYbkxa*Vmn#M5haiey9w^^iyPk7cYzZ? zBY&Tz8j9!8@NjsVf0q!z zQA2>b@=+a};WmFeoM#5s8%Gu07wt-5G^Q^}R4Z@*vvt`>);<_g|4=@{IzpbF77Yv2 zq;JR>7(`=Kb>I1iqg=hp9}ykBf+goA(quXWc{lk@mbA;#S(g#Oh*Rs8S45ug}&y^jA z3%y&ZKFB|*xKr*H1>&vK zgIq8T*TKL=yADyIoLxl)asF{G?J940F^Q{vG8J%2kTXW9w0-?G8e1Mpdjc=8ryB;T39Zh4i=$lGxqVem4R&=z}4R)vzL?BV>3A)wSk zHnO@qNrQob8ZPQVsJ5F8tcu1cc>y!B_glvo8T!)7`3j;!Y@1i}C|j$#nSI4IH$=y# z%mS+MKXC3QsyrGT_2O_y!`n(l8Ld@ZI8f0lc!9D-?R5Pnp+KM4-N`l=F32PdO?V!C zI_HuC+dzM(>LFQgT3|K&FC!r(l&Dh zyX7w4Xfvc`%kUorM%r$nV)LfiU-_~UD@Pj{do!9lV^W?zSDFg0=l{}EXJI?D^6c!i$oBdKDbjR4KrR^U&1ab{nrIMP7vlR|o=7;EX? zqMl9Q3aJkPkFWIaaDsP^72|fvA|QVZ)moT3pv=O=Cjz+}5aDi!zE}z;M&>9)#m-n8 z5^rN8K_hcZ;RG(uHJKN{mLh-QSpNQ5>OeMjwC!|fp(#o$Su9w-M`JEWFo7p)zU~To z`oiF(r0;_xB3On5vywvuE%8ig4XU2#XrCmWFgcx|^OK8`2QHCt?NdMNU}Z{5kh00v$(G0Di=5<|+suN9r%^UF98H`Bm6kVi_>ke;t$ChC zudyri{9#Nu^5PswO1@Q<&ZQDod|4i~__289W7$RcGyAO3JB6f2&UptUTo@Z?b5WIT zyu9s;)>^aeA288`FS1@oUAQ<4MLfPdvYkEVg%#`O%^ChtLoH%E-Z?JJJk(stt|f|V zy1%6lr0LmVw|3$V9hL6m&Lft)O>VK-gTBELwYzohKHX9Z!qmdxlXnjzbgRqu zj!71qj;*!UzthDL5f^6o^tkIrmKzrdWDCm*9p!eme!UPEy3U91|Ax3J{cbVkWglic z{{B!~b-qP&A?!KsiUT_ob%}opdUwe2*5137qAp>wlK)A>KB^`@% z^~;4vytqAoWK8}agmXIqz4VJbwh#5aYK8BS;eaj>^shhqseeC!FIO9V7?2*CB*GN4 zK-_i1bk~}RJ}2(F&zCDg>GE|ZT4~M%CS&_mKVBdng@!QW+;z!k*--;@96UV4C);{D z^LfHo6=Qf~RR@w_%|Ys7kel^jQ7JA`a{F#JD_=xYSoTNA6$LisyH?qA!1+HzCwplDNC=GmB4>R!T-@fM{#GUf;y18 zeu=NVy*HF@Nuz-jlkc~MEOkq*u5h{cvn)x~FGWZWVLWFfN?S-Q4kz?S*zT`GMd{2D zW|b2m1RPIsd-TZ!BJkicmuD)Yu-!=yWbds}AB?0}E!40K6JT#mQRcN#aLF;FHrKMFIq4F;j?=PfalMIuLGDf618eYCVoX z()hhb%ysr?aMa;a7vtgTE;6{{&!t)$Nk}^zh7tFD7Gw=R=;_XIetvk$1^$Ys%jWNKCRm$t*$IHmN61MkDrWOI{nXXaaE5;$k4 z?9vsDC%uM^h%suI!bqVhQb|2=i*yYS#8B5rDqV1M}AV#4Mqj>dydsS*a+ zbO-hcAKjaK(1x4sM_=P^4fTucLk&PUKTQd6e1=bV)TAS4#91G#(^E#Ug`Y8Hl_EVt zt&UXYmzd@C!wsT7u7R#btOwR^d$}M$SO2-;z` z5Tg?SeSwp{BJUS^dwzn%^JZ{5^?REge(bxmSAn2kXVu*Q75}91NL%}ndZ^ChRNblr-zblpdwT0Z#z?8K z)IrIi&hSVUQpwz}%C;kPkJx1KVdEPaGum%Z+l{ zGpGpKetoII#UUw=A|Fic*OU(6xtv#r%h4}syj~qRrLGYILT3zVyPN*4us#=GFFY+9 zwKb3VM+w{8_#}^d=Z_Mzw^@h^ZA&sG=hK{o*pVOc$*BEC6v#ihYtq=h*o66~Wm9qy zVgNz6vIz}j5`b!8^>9dXi%$`pX zq^Y*rrN|^s?E#5RR^zT@M+ClqiTn~`cyw&=#On~x+}vARqgr*#6|%$Wd}s#)E-iu6 z;|^_wyIiR?+%VaE?)@|opUoz3Uv)^?{CA88j}?m#1JFQ9@NZsyPrt?S*PqSHW8%iV zgURQd(EEDvye4WGH*<1Q*7@IUH%qvX=IqM@kX^_~a=Sm+qLl1x7wD%|tKY z5_1l=rblY1Jqal=91tgD>}v-n)FE(S_q3Em*}xuQwckvdO%i8HZ`s>t{xS-5p~vWp z)g1WcbIG4rA42?rBHB5ib~FfnkScEq{u4t`%9VrIhLr=$#>;TQpMe|CUadF9Coz{c&5iS`aaaeN>PW{Yh-zH94y4jB7fqV~ z^^`fIiAwZ~r8!KzZ~36PZR5xuvU#J-^sF&8csl5Q#>1#b!jO@b2jPoNK)5!UtS!40 zX*lTL@n3pWxD)^w??&DNI+4B&Cl+>yJzVsY=AAhy|0HVQ+#hD5SsR419DYTMYo#}4mLx_?myC#yXnGo9g62{2-S{>s zP;*d-f@d{q%$2r+e1_+)G|&9UC0ne-p=hpkY5Wrd37QNO)+N#Tqn_J`wL7FNG9Y)q z3$@#asR%@3Vb~&G#>6FJ{q6H%YhqkHWO?%VeTu3Tlg|iqkADD8wJQ%}n+0`XXTUWwo*%uwE+1C#EeN()=k09z&xtGd&doF#`=y6=p`hxUmi0Y%TqMe zTvUHKxD&*TmVw-uh4-i9p+B@Oc)8iXTU=e+kwX*D=@)N*I_PCg!V)&S%^3%gA{|ek z8Mg6mcSV-$Ba{mS?UqXrsX37|TKvWRMs_gp*!bJRRoZ z2JZ@}6cosQTA{kMOvEW_m{cQ7wQBAt3*-T*SH*pxBc~yfm}<#yz9;!8$-qxqF**9tgd2CAL_`Cs=VY@jejsMI-k8+Z_7w*8<4{fkr|0euzT=hu4`AK?MHi+A(omt+^j@li?5- zvGZ#QD%`-^7Fx1D7$1iZWrM5R|AN*qSP#;hQyI!vzF~KyJlZ{jBj*i@{Vk0@CMPk~?Ome>@j_M> zae<(`zZ&ZwD8A6Gtsfsa-a$1vVq`}K9B3fM&Ujzol~aO_=iyzSQgVX_Ya-K8$Cwm+ zy12b2a{QOnq1kZ^GX{lYXl$qr&1l7`eHob-M8Bh1zO-)+DZeT~gTwr2b)Ut)$Sufq@GvSaZ%{I^*9x<`-C2i_}Vz4RToA@NhiHa*DR zu`-s{@#Y^MHBhmQR_~%vsO2T$L4qi@*owU%Cn4!Ts9n6%?uiGHN0f9drs;%EomwZ! zvoPv!s`sYzw$R*cA%!vmzBtr5`MYB3em+11!Uf6#BXG+}HsMby+DT-8)W8ugA|o}h z;6;BxB38*lIcRCzB07*boX0u*9^L6{@t+x)5{=6l+{f7_>2GC}X!_&CGwaRcZeld- zygL<0xoE?&%ka`oB57@7{_S|%qKKh7SldC{VIu!snOn1d?`^!N7{($h|(V0A!2 zyDf)l#9H%?rkxc`;hJGMgtzHo9HbX#oa_i|%#-mPOfY?FznzPA%1({&R@6PEH*nsI zsw(xCI+mF~Eiq+FxtvunV(afA zf-48PWAh>pht3_x!_ToCDg#o|Os6gEQ1E3p&*x`YDaW zGD9tFSfeH=QH&Bv!}8f{>8ImpdCm$+YPostXgqX0M@LoGFugomYOO*$4#=|$wg~*Y zX@Cfp#`ovvUdIdIj$CQ*Nnj|>q`4Hc8jf(_isnpY9i-oheiNyNre1M}C8GJa*rWQ9!H60}57C7a=C+|!-~nF26wq$x zG5v&_>nr{xT}~9YWTnktuafZE5{+q8T&k?iATeC$g?+E2Woc8df}&3l=CYLI(eSG6I(I7q__w_h$J?xc)E7Q8Yk(vsgS?zVw8uX1yt;mIdcN3Jdu-xfF4 zMy5#{8a{8S;a}84&a~6c>t&W4)3$J`VvHebs%VP;Y^6i0_pb~nuYpNGni|H#wscan zVVS-FIpWm0oNtwS4!c-t2SP&P1E4j5)7rQL_=JcL`6>dO6zwP{rewjC8tLNsVywtz z$R9@)G}E9}4XoH&u#Ei@VFVx0g^Eq+z7MR}74X{TQurQ%1!Uqq`x2lvn7U>T} z#_pkJ_A#U+MCHVyWAl*{$4aJ_arbj30w3@6;-W486iejofY_0O>9Qq4!+M~*%bhb2 zwhS?P|EB8q0A*CeMIKZ{v2+-)w}k@Jf%mTfBi<==`G#G2sg03=5Bg;7)%IC&;czU( z*!~9`k1r;hTdH1WM!U?2RWag>9KZav^V!y(E}T+Y{$gv}zBwH689wL(BvqzLu{>La z3FRT86Hcf8HVo?m-LjI+f`1Sis|ia4av(%c5jb|?Q?>()#hu5zV(}#rJ=?(T&_?E- zoezeU>nMT#Z!E??KX2d-<*waRIT#bmRp@}@aVAPU1O$>r4!Ly&DMAcSO$r6OcO6mv z?HEA@o;`H`$a)lTAGB)@e0Z5fb-Anb93u=-tWPD z)(zC$VzR5B7fBZ2x`gbJe*W|4`$2*eyGP~J#>}>yR<3%2#aEk6!h+B*1JyiLWRiX$ zo&W%CVupZm4&hfU?0r{R@ivr))FaDXyYf=pQ+-qx_szis!b5YOwt76~Z0iJmcSOB1j(Dm96xCZD=Jj9e-eeC0Vz4 za3}Q!#$SXAj%JFFe8DIdSR?jVTiWKd`};`wq=1_jgP>12iroF|J;!3YhqZ8 zR3wYVPEb(bZ$WHg0-SO@zmZzLlJlNT|JP5tZ5hG~{_rqNF#vym&;8x9pSCP&&WTyE zA_Xs5|4`L@ND4fmfA6^HjAUow#C%T#@_X1IYCkC+pij>HEueQbTu(<_tnP@bitbQ8 z_@Q)PQV7Ne7_@64+0n*hy{s@!G0Lw@)SSyTYTja-(;E!aO zQbm-_YHEy@kE5fwOBWW|6Mg-8&SKDnj%m%_2k01gy_uCDJhqEBJPeETpPE21r{RUQ zf$a)PdLrWB+#Ws4wrRgdqnss$Yob1UU{JIkhvc-?aK>XzTn)M}LIl?Ua2F}vH$b|t z7l3qE7fm|%xg$dYv){*Y%jdG$Q>;+_xb?B>*!IEZ6Nm9dgqTqc{lZtR<=og1S4qZg z#|GC9d;Ti7NFmV&)f~SuLqh3($1gh9#P6mh8D($c2;HH9FcP-XDq+(pA%6akxv zJWJc`DB`vJu}0_+ddP;FEoRvVyX|P=U&j9YVyHXZBQU%z_IKLlY&65w0EtLJIO(S1 zXA)KvESaHTo?WXoxqpfdlDli(cK5G&WxM$C6=xn_4>8s4m1DwG82?wGjGgj2Z9O|> zqjP;R`k9hyHj|+$p`lQ(y|CR*lmvPI`zem`07Ag5u_s@ltBU%CmStza!$|inC!?Ht z+%114MvD;|RuE;9sW!;hD;~Sih2SDBsmuOAsK+JZVDg_i%!#bCksj5jqVWInR_s{; zo*TL1nltQfE|S+EOF4F{ix|xz?9khrpHHlT`e{8sX|dvbPGGO_3y7Ts(2^qh?V9U? zTDbiNgVwdn+41*RF(NkgTKg#?4aPBuC9P**c2IEcM=fD*7oeb219nHZy76TDq~~8F z`)f)7cZbGB%r;_oH|Z&(GU?UbdX`pozRkI$P_Jld2hnAs?R%{dc* z&9*w**onp4V2)evjnCQU zVcv=e4)u@^c+=O>vL#dr=Jxn47T55+r8d&T45n1Q5ncQ_f$6HOZ@@MN9KAcE8(3v+ zk>{#QfAuK@K<6rG0r3{l-YlZrbT(aV?PZ9yjje4B@LTa-Z>_7aLd?h(=rz_9)f_Z& z<$lf#HauJ%4*~Fs1u#&hSYrTZ%q0cW{(0IOvIM!qEik_Qh^z19yE<`aO@f0|@z#i0 zpt(jR^s{PAtpo5T?a?>dI=~!PB`{t2X;lja@T5i{#&l-@C}k=gHp5SQ2U>06KI$5Z zH$e~&eZSx9Vr$_d!705d>U}IQb2s{Sw$j#+BF515jU?L}NmPL3ft(b^;_c4hOa_z( zGEhmq1?mOdstM6UZi65zxCLr}y%Pk$m^-h)X8*k+!unRZtiP?J1&s9U7iIf3HCbjY zq0zoA|CY$zWEK66whdc|1hA0E*xnw;_(E{`dDXdj@fKGaaL^NcfGL-78Za*~CRWhs z(~1PFYx%Y=7pqN1FmC%1HWJ+1bA&)Qs>C+4dEs{Fzvsx`o{JW4KD&=@%Jyq%!cED@ z08|JA{0ucN#rkz6IFC(FPmu}$W}wB9WIXU zu!aB?z~KSb_%h2%R(d8D1_7x6cEhrlMRCw)HiCy41Wx9NbyJN?{IOpB^Q%$Vg7W`( ri$98-)cRBd>XRzQ1rnUh&Og|{Fu|}4@XeS|z@MD7l2nz1QNaHI#SX^4 diff --git a/src/assets/networks/polygon-network.png b/src/assets/networks/polygon-network.png deleted file mode 100644 index c3c157cdb5113e54be7a76e379517e8473c5afd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1314 zcmV+-1>O3IP)Px#QBX`&MMrQ01b3fPE!Ev1H~{)57u7zlc|D;ov4ri00dS^L_t(&-o0Asx~m`ztov4q zh`7D~gI?O>LLjKI_2%dKP8rEE69SLNDNE!0Sw&eE6h)9_QT5E@^zkc8lQLt7MP>2> zkTj3jjz#%*7)e#I11qZJ>gr*hu~U}i;hoE0gop{te;{Jg*QX^TTSW+W60i#voQ-x^ zvWr%pibNc-%NCu8L>#a$EI33+3ig#12Z6}HTwf#PyX&(bSbm>>j=U8AWPObgpU)pI zrDXg!xfHtj&soI_@zOTYAxb2`&iZxVzGj;gCqg6+e+IU9)cD%0 zZE6}qknTH(50iKS8+%%?p_9Vc@=nvfY!l-^LI9Z*0{xP`yZi@&UsUP&&8(ST?Nd0`9226_jrplW@g8cl6bxP(_27l zZ2eR*4MtjWJ~XSJT1l<8YW+*Sd}z~IS+8kn4NiT!lbQS5!U5AFyU4$NQ(jsYh1_qn<(rmePjG&Oz11b|M>3pskU03)i969DE8 z2Gb+4F_%>dPXYj@)(5ivG>GUVfTPxirebsyVF3Q+Yjb(gs2;#gomU@@h4;%p?!_LR%Ch9>ATU+u+M-+e(J0L>{ zX7BRXnzI<_26FE>=eQma!E5b7 z3>fG5RKXhx`+$IqlHfp!dS}2vAE^a{AI%+8;#8lrE%`@e^56^w!-NrSNl?*aC!6HN zVD?1Hs-{tBBUzpsEgwU8Cfn#}`OC|dGZ!s)kN5Atpt%2v<^D^e@4a+<-+1>$-ThaM z_g|LYf8G1$)(e{`Den`)@WPcl?OH!1KN=uE8whWH_V6DbZv2m@C%cblvY$Mj`TF_K YKQ4KLX-bf(1poj507*qoM6N<$f|>DXm;e9( diff --git a/src/assets/networks/zksync-network.png b/src/assets/networks/zksync-network.png deleted file mode 100644 index 95dcab2025beae22217493fcd74427ead8e96de2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 625 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEV6yOZaSW-5dpjet@0A0O>tPMH zjh@#I{fl6V|MQ`HM!U^jk9U6YK`*^dExk6mR%Nwn`KcMgr!+OZ9*fM`(8m3s#WaRN zea%BAi$q@W1Dx4A82lm*vlbkZ(rXaDR=@~VvWcr=|NS|ydfa-=HgQ?ZKM!NhIGZ-- z)tL;FM^m(JvWU0_^06`dm9v?uP4=wZfB*FBuc!X|xrH8hTekWiU%PWC;|kNcew%aH zLm78CXM{NgGc3uvk{rT%<^G;+44qGlPEJ=@sODhzO{bw)rl>bZUM#qo9#vu0Od`61}F?!ScmnAXvoB4bb5a>Q|;qlh568*>HuYX^y>;5+H5)hymsK8b#j|*gI?^NHM^7Z&c?4*v1{vXIP&@D z6QjT{LJi{Fyvw(7?9H@%pKmt1-*n@}>HoA(e`r~EJZWP_ZUCS89zC^`-+yoNFi51` ziLl*vJGV6UMYOD)uW$c_8wV8luJ$e5&QM@Aca^b~xoV^1wPSVr|3_R_J@ESLqE&Z2 zgcKg=6%}_}@C=xzV0dxMS(AOKTv|*FcAObKv;CKPHmI$-x - - - - - - - - - - - diff --git a/src/components/ClassicElasticTab.tsx b/src/components/ClassicElasticTab.tsx index 7fdd07383c..7916413a4d 100644 --- a/src/components/ClassicElasticTab.tsx +++ b/src/components/ClassicElasticTab.tsx @@ -44,7 +44,7 @@ function ClassicElasticTab() { const showLegacyExplicit = upToMedium ? false : isFarmpage ? shouldShowFarmTab : shouldShowPositionTab - const dontShowLegacy = [ChainId.LINEA_TESTNET, ChainId.LINEA].includes(chainId) + const dontShowLegacy = [ChainId.ZKEVM, ChainId.LINEA].includes(chainId) const legacyTag = (small?: boolean) => ( theme.red}; - margin-left: 2px; - margin-top: -10px; -` - const ListItem = styled.div<{ selected?: boolean }>` width: 100%; display: flex; @@ -197,11 +189,6 @@ const Networks = ({ {name} - {key === ChainId.LINEA && ( - - New - - )} {selected && !walletKey && } {walletKey && ( diff --git a/src/components/SwapForm/PriceImpactNote.tsx b/src/components/SwapForm/PriceImpactNote.tsx index 6de7af621c..5e5d4be797 100644 --- a/src/components/SwapForm/PriceImpactNote.tsx +++ b/src/components/SwapForm/PriceImpactNote.tsx @@ -5,8 +5,6 @@ import styled from 'styled-components' import Row from 'components/Row' import WarningNote from 'components/WarningNote' -import { useActiveWeb3React } from 'hooks' -import { checkAllowBypassPriceImpactRestriction } from 'utils/priceImpact' import { checkPriceImpact } from 'utils/prices' const TextUnderlineColor = styled(Text)` @@ -33,11 +31,9 @@ type Props = { } const PriceImpactNote: FC = ({ isDegenMode, priceImpact }) => { - const { chainId } = useActiveWeb3React() const priceImpactResult = checkPriceImpact(priceImpact) - const shouldHide = checkAllowBypassPriceImpactRestriction(chainId) - if (typeof priceImpact !== 'number' || shouldHide) { + if (typeof priceImpact !== 'number') { return null } diff --git a/src/components/SwapForm/SlippageSetting.tsx b/src/components/SwapForm/SlippageSetting.tsx index d567b9c4a8..9aa9e4c8d1 100644 --- a/src/components/SwapForm/SlippageSetting.tsx +++ b/src/components/SwapForm/SlippageSetting.tsx @@ -1,12 +1,11 @@ import { Trans } from '@lingui/macro' -import React, { ReactNode, useState } from 'react' +import { ReactNode, useState } from 'react' import { Flex, Text } from 'rebass' import styled from 'styled-components' import { ReactComponent as DropdownSVG } from 'assets/svg/down.svg' import SlippageControl from 'components/SlippageControl' import { MouseoverTooltip, TextDashed } from 'components/Tooltip' -import { useActiveWeb3React } from 'hooks' import useTheme from 'hooks/useTheme' import { useSlippageSettingByPage } from 'state/user/hooks' import { ExternalLink } from 'theme' @@ -28,11 +27,10 @@ type Props = { } const SlippageSetting = ({ isStablePairSwap, rightComponent, tooltip, isCrossChain }: Props) => { const theme = useTheme() - const { chainId } = useActiveWeb3React() const [expanded, setExpanded] = useState(false) const { setRawSlippage, rawSlippage, isSlippageControlPinned } = useSlippageSettingByPage(isCrossChain) - const defaultRawSlippage = getDefaultSlippage(chainId, isStablePairSwap) + const defaultRawSlippage = getDefaultSlippage(isStablePairSwap) const isWarningSlippage = checkWarningSlippage(rawSlippage, isStablePairSwap) if (!isSlippageControlPinned) { diff --git a/src/components/SwapForm/SwapActionButton/SwapButtonWithPriceImpact.tsx b/src/components/SwapForm/SwapActionButton/SwapButtonWithPriceImpact.tsx index edd1bba5ec..7184a009d4 100644 --- a/src/components/SwapForm/SwapActionButton/SwapButtonWithPriceImpact.tsx +++ b/src/components/SwapForm/SwapActionButton/SwapButtonWithPriceImpact.tsx @@ -6,7 +6,6 @@ import styled from 'styled-components' import { ButtonPrimary } from 'components/Button' import { MouseoverTooltip } from 'components/Tooltip' import { Dots } from 'components/swapv2/styleds' -import { useActiveWeb3React } from 'hooks' import useTheme from 'hooks/useTheme' import { useDegenModeManager } from 'state/user/hooks' import { checkShouldDisableByPriceImpact } from 'utils/priceImpact' @@ -50,7 +49,6 @@ export const SwapButtonWithPriceImpact = ({ showTooltipPriceImpact?: boolean }) => { const theme = useTheme() - const { chainId } = useActiveWeb3React() const [isDegenMode] = useDegenModeManager() const priceImpactResult = checkPriceImpact(priceImpact) @@ -74,7 +72,7 @@ export const SwapButtonWithPriceImpact = ({ ) } - const shouldDisableByPriceImpact = checkShouldDisableByPriceImpact(chainId, isDegenMode, priceImpact) + const shouldDisableByPriceImpact = checkShouldDisableByPriceImpact(isDegenMode, priceImpact) const shouldDisable = !route || !isApproved || shouldDisableByPriceImpact || disabled if ((priceImpactResult.isVeryHigh || priceImpactResult.isInvalid) && isDegenMode) { diff --git a/src/components/SwapForm/SwapModal/ConfirmSwapModalContent.tsx b/src/components/SwapForm/SwapModal/ConfirmSwapModalContent.tsx index 200f7f2cd1..bbe2a361f1 100644 --- a/src/components/SwapForm/SwapModal/ConfirmSwapModalContent.tsx +++ b/src/components/SwapForm/SwapModal/ConfirmSwapModalContent.tsx @@ -1,7 +1,7 @@ import { Currency, CurrencyAmount, Price } from '@kyberswap/ks-sdk-core' import { Trans } from '@lingui/macro' import { transparentize } from 'polished' -import React, { useMemo, useState } from 'react' +import { useMemo, useState } from 'react' import { Check, Info } from 'react-feather' import { Flex, Text } from 'rebass' import { calculatePriceImpact } from 'services/route/utils' @@ -80,7 +80,7 @@ export default function ConfirmSwapModalContent({ onSwap, }: Props) { const theme = useTheme() - const { isSolana, chainId } = useActiveWeb3React() + const { isSolana } = useActiveWeb3React() const [encodeSolana] = useEncodeSolana() const { routeSummary, slippage, isStablePairSwap, isAdvancedMode } = useSwapFormContext() const [hasAcceptedNewAmount, setHasAcceptedNewAmount] = useState(false) @@ -218,7 +218,7 @@ export default function ConfirmSwapModalContent({ const warningStyle = priceImpactResult.isVeryHigh || priceImpactResult.isInvalid ? { background: theme.red } : undefined - const shouldDisableByPriceImpact = checkShouldDisableByPriceImpact(chainId, isAdvancedMode, priceImpactFromBuild) + const shouldDisableByPriceImpact = checkShouldDisableByPriceImpact(isAdvancedMode, priceImpactFromBuild) const isShowAcceptNewAmount = outputChangePercent < SHOW_ACCEPT_NEW_AMOUNT_THRESHOLD || (isStablePairSwap && outputChangePercent < 0) diff --git a/src/components/SwapForm/index.tsx b/src/components/SwapForm/index.tsx index 2f80770d06..d0d1b730c2 100644 --- a/src/components/SwapForm/index.tsx +++ b/src/components/SwapForm/index.tsx @@ -1,4 +1,4 @@ -import { ChainId, Currency, CurrencyAmount } from '@kyberswap/ks-sdk-core' +import { Currency, CurrencyAmount } from '@kyberswap/ks-sdk-core' import { Trans } from '@lingui/macro' import { rgba } from 'polished' import { stringify } from 'querystring' @@ -216,26 +216,24 @@ const SwapForm: React.FC = props => { - {chainId === ChainId.LINEA_TESTNET ? null : ( - - navigate( - `${APP_PATHS.PROFILE_MANAGE}${PROFILE_MANAGE_ROUTES.CREATE_ALERT}?${stringify({ - amount: typedValue || undefined, - inputCurrency: currencyId(currencyIn, chainId), - outputCurrency: currencyId(currencyOut, chainId), - })}`, - ) - } - > - - {upToExtraSmall ? null : ( - - Price Alert - - )} - - )} + + navigate( + `${APP_PATHS.PROFILE_MANAGE}${PROFILE_MANAGE_ROUTES.CREATE_ALERT}?${stringify({ + amount: typedValue || undefined, + inputCurrency: currencyId(currencyIn, chainId), + outputCurrency: currencyId(currencyOut, chainId), + })}`, + ) + } + > + + {upToExtraSmall ? null : ( + + Price Alert + + )} + currencyIn && handleChangeCurrencyOut(currencyIn)} /> diff --git a/src/constants/bases.ts b/src/constants/bases.ts index 90e577560f..65457134b1 100644 --- a/src/constants/bases.ts +++ b/src/constants/bases.ts @@ -27,8 +27,8 @@ const WETH_ONLY: ChainTokenList = { [ChainId.OPTIMISM]: [WETH[ChainId.OPTIMISM]], [ChainId.ZKSYNC]: [WETH[ChainId.ZKSYNC]], [ChainId.SOLANA]: [WETH[ChainId.SOLANA]], - [ChainId.LINEA_TESTNET]: [WETH[ChainId.LINEA_TESTNET]], [ChainId.LINEA]: [WETH[ChainId.LINEA]], + [ChainId.ZKEVM]: [WETH[ChainId.ZKEVM]], [ChainId.SOLANA_DEVNET]: [WETH[ChainId.SOLANA_DEVNET]], } @@ -178,12 +178,7 @@ export const SUGGESTED_BASES: ChainTokenList = { new Token(ChainId.ZKSYNC, '0x503234f203fc7eb888eec8513210612a43cf6115', 18, 'LUSD', 'LUSD'), new Token(ChainId.ZKSYNC, '0xbbeb516fb02a01611cbbe0453fe3c580d7281011', 8, 'wBTC', 'wBTC'), ], - [ChainId.LINEA_TESTNET]: [ - ...WETH_ONLY[ChainId.LINEA_TESTNET], - USDC[ChainId.LINEA_TESTNET], - USDT[ChainId.LINEA_TESTNET], - DAI[ChainId.LINEA_TESTNET], - ], + [ChainId.ZKEVM]: [...WETH_ONLY[ChainId.ZKEVM], USDC[ChainId.ZKEVM], USDT[ChainId.ZKEVM], DAI[ChainId.ZKEVM]], [ChainId.LINEA]: [ ...WETH_ONLY[ChainId.LINEA], new Token(ChainId.LINEA, '0x7d43aabc515c356145049227cee54b608342c0ad', 18, 'BUSD', 'BUSD'), diff --git a/src/constants/index.ts b/src/constants/index.ts index 4711fc4648..3b7218a4f2 100644 --- a/src/constants/index.ts +++ b/src/constants/index.ts @@ -197,7 +197,6 @@ export const DEFAULT_SLIPPAGES = [5, 10, 50, 100] export const DEFAULT_SLIPPAGE = 50 export const DEFAULT_SLIPPAGE_STABLE_PAIR_SWAP = 5 -export const DEFAULT_SLIPPAGE_TESTNET = 1000 export const AGGREGATOR_WAITING_TIME = 1700 // 1700 means that we at least show '.' '..' '...' '.' '..' '...' @@ -321,7 +320,7 @@ export const CHAINS_SUPPORT_CROSS_CHAIN = ] : SUPPORTED_NETWORKS -export const TYPE_AND_SWAP_NOT_SUPPORTED_CHAINS: ChainId[] = [ChainId.ZKSYNC, ChainId.LINEA_TESTNET, ChainId.LINEA] +export const TYPE_AND_SWAP_NOT_SUPPORTED_CHAINS: ChainId[] = [ChainId.ZKSYNC, ChainId.LINEA, ChainId.ZKEVM] export const SWAP_FEE_RECEIVER_ADDRESS = '0x4f82e73EDb06d29Ff62C91EC8f5Ff06571bdeb29' diff --git a/src/constants/networks.ts b/src/constants/networks.ts index 43ef0bd59f..3bf526dd5e 100644 --- a/src/constants/networks.ts +++ b/src/constants/networks.ts @@ -15,7 +15,6 @@ import { fantom, görli, linea, - lineaTestnet, matic, mumbai, oasis, @@ -26,6 +25,7 @@ import { zksync, } from './networks/index' import { EVMNetworkInfo } from './networks/type' +import zkEvm from './networks/zkevm' type SOLANA_NETWORK = ChainId.SOLANA | ChainId.SOLANA_DEVNET @@ -50,8 +50,8 @@ const NETWORKS_INFO_CONFIG: NETWORKS_INFO_CONFIG_TYPE = { [ChainId.OASIS]: oasis, [ChainId.OPTIMISM]: optimism, [ChainId.ZKSYNC]: zksync, - [ChainId.LINEA_TESTNET]: lineaTestnet, [ChainId.LINEA]: linea, + [ChainId.ZKEVM]: zkEvm, [ChainId.SOLANA]: solana, [ChainId.SOLANA_DEVNET]: solanaDevnet, } as const @@ -71,20 +71,21 @@ export const SUPPORTED_NETWORKS = Object.keys(NETWORKS_INFO).map(Number).filter( export const MAINNET_NETWORKS = [ ChainId.MAINNET, - ChainId.BSCMAINNET, - ChainId.MATIC, - ChainId.AVAXMAINNET, ChainId.ARBITRUM, ChainId.OPTIMISM, + ChainId.LINEA, + ChainId.MATIC, + ChainId.ZKEVM, + ChainId.ZKSYNC, + ChainId.BSCMAINNET, + ChainId.AVAXMAINNET, // ChainId.SOLANA, - ChainId.BTTC, - ChainId.OASIS, ChainId.FANTOM, + ChainId.BTTC, ChainId.CRONOS, ChainId.VELAS, + ChainId.OASIS, ChainId.AURORA, - ChainId.ZKSYNC, - ChainId.LINEA, ] as const export const EVM_NETWORKS = SUPPORTED_NETWORKS.filter(chainId => getChainType(chainId) === ChainType.EVM) as Exclude< @@ -165,8 +166,8 @@ export const STATIC_FEE_OPTIONS: { [chainId: number]: number[] | undefined } = { [ChainId.OPTIMISM]: [8, 10, 50, 300, 500, 1000], [ChainId.GÖRLI]: [8, 10, 50, 300, 500, 1000], [ChainId.ZKSYNC]: [8, 10, 50, 300, 500, 1000], - [ChainId.LINEA_TESTNET]: [8, 10, 50, 300, 500, 1000], [ChainId.LINEA]: [8, 10, 50, 300, 500, 1000], + [ChainId.ZKEVM]: [8, 10, 50, 300, 500, 1000], } export const ONLY_STATIC_FEE_CHAINS = [ @@ -177,8 +178,8 @@ export const ONLY_STATIC_FEE_CHAINS = [ ChainId.OPTIMISM, ChainId.GÖRLI, ChainId.ZKSYNC, - ChainId.LINEA_TESTNET, ChainId.LINEA, + ChainId.ZKEVM, ] // hardcode for unavailable subgraph @@ -225,6 +226,3 @@ export const COMING_SOON_NETWORKS_FOR_MY_EARNINGS_CLASSIC: ChainId[] = [ ChainId.AURORA, ChainId.OASIS, ] - -// by pass invalid price impact/unable to calculate price impact/price impact too large -export const CHAINS_BYPASS_PRICE_IMPACT = [ChainId.LINEA_TESTNET] diff --git a/src/constants/networks/avax-testnet.ts b/src/constants/networks/avax-testnet.ts index 062b2cf556..e5e4fddc65 100644 --- a/src/constants/networks/avax-testnet.ts +++ b/src/constants/networks/avax-testnet.ts @@ -1,6 +1,5 @@ import { ChainId } from '@kyberswap/ks-sdk-core' -import AVAX from 'assets/networks/avax-network.png' import { EVMNetworkInfo } from 'constants/networks/type' const EMPTY = '' @@ -15,7 +14,7 @@ const avaxTestnetInfo: EVMNetworkInfo = { aggregatorRoute: 'avalanche', poolFarmRoute: EMPTY, name: 'Avalanche Testnet', - icon: AVAX, + icon: 'https://storage.googleapis.com/ks-setting-a3aa20b7/31645e2e-9c40-4fdf-9ddf-50d24e5399e4.svg', iconDark: NOT_SUPPORT, iconSelected: NOT_SUPPORT, iconDarkSelected: NOT_SUPPORT, @@ -26,7 +25,7 @@ const avaxTestnetInfo: EVMNetworkInfo = { nativeToken: { symbol: 'AVAX', name: 'AVAX', - logo: AVAX, + logo: 'https://storage.googleapis.com/ks-setting-a3aa20b7/31645e2e-9c40-4fdf-9ddf-50d24e5399e4.svg', decimal: 18, minForGas: 10 ** 16, }, diff --git a/src/constants/networks/avax.ts b/src/constants/networks/avax.ts index b554852b2c..788137f7a6 100644 --- a/src/constants/networks/avax.ts +++ b/src/constants/networks/avax.ts @@ -1,6 +1,5 @@ import { ChainId } from '@kyberswap/ks-sdk-core' -import AVAX from 'assets/networks/avax-network.png' import { EVMNetworkInfo } from 'constants/networks/type' const EMPTY = '' @@ -14,7 +13,7 @@ const avaxInfo: EVMNetworkInfo = { poolFarmRoute: 'avalanche', aggregatorRoute: 'avalanche', name: 'Avalanche', - icon: AVAX, + icon: 'https://storage.googleapis.com/ks-setting-a3aa20b7/31645e2e-9c40-4fdf-9ddf-50d24e5399e4.svg', iconDark: NOT_SUPPORT, iconSelected: NOT_SUPPORT, iconDarkSelected: NOT_SUPPORT, @@ -25,7 +24,7 @@ const avaxInfo: EVMNetworkInfo = { nativeToken: { symbol: 'AVAX', name: 'AVAX', - logo: AVAX, + logo: 'https://storage.googleapis.com/ks-setting-a3aa20b7/31645e2e-9c40-4fdf-9ddf-50d24e5399e4.svg', decimal: 18, minForGas: 10 ** 16, }, diff --git a/src/constants/networks/bnb-testnet.ts b/src/constants/networks/bnb-testnet.ts index 5e938470f9..cb87ef22f5 100644 --- a/src/constants/networks/bnb-testnet.ts +++ b/src/constants/networks/bnb-testnet.ts @@ -1,7 +1,6 @@ import { ChainId } from '@kyberswap/ks-sdk-core' import BnbLogo from 'assets/images/bnb-logo.png' -import BSC from 'assets/networks/bsc-network.png' import { EVMNetworkInfo } from 'constants/networks/type' const EMPTY = '' @@ -16,7 +15,7 @@ const bnbTestnetInfo: EVMNetworkInfo = { poolFarmRoute: EMPTY, aggregatorRoute: 'bsc', name: 'BNB Testnet', - icon: BSC, + icon: 'https://storage.googleapis.com/ks-setting-a3aa20b7/a44a3dbc-9150-4278-8354-7b5953f9a1ab.svg', iconDark: NOT_SUPPORT, iconSelected: NOT_SUPPORT, iconDarkSelected: NOT_SUPPORT, diff --git a/src/constants/networks/bnb.ts b/src/constants/networks/bnb.ts index 098dce717f..bb5d96704e 100644 --- a/src/constants/networks/bnb.ts +++ b/src/constants/networks/bnb.ts @@ -1,7 +1,6 @@ import { ChainId } from '@kyberswap/ks-sdk-core' import BnbLogo from 'assets/images/bnb-logo.png' -import BSC from 'assets/networks/bsc-network.png' import { EVMNetworkInfo } from 'constants/networks/type' const EMPTY = '' @@ -15,7 +14,7 @@ const bnbInfo: EVMNetworkInfo = { poolFarmRoute: 'bsc', aggregatorRoute: 'bsc', name: 'BNB Chain', - icon: BSC, + icon: 'https://storage.googleapis.com/ks-setting-a3aa20b7/a44a3dbc-9150-4278-8354-7b5953f9a1ab.svg', iconDark: NOT_SUPPORT, iconSelected: NOT_SUPPORT, iconDarkSelected: NOT_SUPPORT, @@ -67,7 +66,7 @@ const bnbInfo: EVMNetworkInfo = { routers: '0xF9c2b5746c946EF883ab2660BbbB1f10A5bdeAb4', farms: ['0x7D5ba536ab244aAA1EA42aB88428847F25E3E676'], farmv2Quoter: '0x6AFeb9EDd6Cf44fA8E89b1eee28284e6dD7705C8', - farmV2S: ['0x3D6AfE2fB73fFEd2E3dD00c501A174554e147a43'], + farmV2S: ['0x3D6AfE2fB73fFEd2E3dD00c501A174554e147a43', '0xf2BcDf38baA52F6b0C1Db5B025DfFf01Ae1d6dBd'], }, limitOrder: { development: '0x26279604204aa9D3B530bcd8514fc4276bf0962C', diff --git a/src/constants/networks/bttc.ts b/src/constants/networks/bttc.ts index 952230b485..17153a778f 100644 --- a/src/constants/networks/bttc.ts +++ b/src/constants/networks/bttc.ts @@ -1,6 +1,5 @@ import { ChainId } from '@kyberswap/ks-sdk-core' -import BTT from 'assets/networks/bttc.png' import { EVMNetworkInfo } from 'constants/networks/type' const EMPTY = '' @@ -15,7 +14,7 @@ const bttcInfo: EVMNetworkInfo = { poolFarmRoute: 'bttc', aggregatorRoute: 'bttc', name: 'BitTorrent', - icon: BTT, + icon: 'https://storage.googleapis.com/ks-setting-a3aa20b7/4877aa34-b675-4fb3-8de2-15ab8a8f6a53.svg', iconDark: NOT_SUPPORT, iconSelected: NOT_SUPPORT, iconDarkSelected: NOT_SUPPORT, @@ -26,7 +25,7 @@ const bttcInfo: EVMNetworkInfo = { nativeToken: { symbol: 'BTT', name: 'BTT', - logo: BTT, + logo: 'https://storage.googleapis.com/ks-setting-a3aa20b7/4877aa34-b675-4fb3-8de2-15ab8a8f6a53.svg', decimal: 18, minForGas: 10 ** 16, }, diff --git a/src/constants/networks/ethereum.ts b/src/constants/networks/ethereum.ts index e4ef482ddc..a6577db62c 100644 --- a/src/constants/networks/ethereum.ts +++ b/src/constants/networks/ethereum.ts @@ -65,7 +65,7 @@ const ethereumInfo: EVMNetworkInfo = { initCodeHash: '0x00e263aaa3a2c06a89b53217a9e7aad7e15613490a72e0f95f303c4de2dc7045', quoter: '0x4d47fd5a29904Dae0Ef51b1c450C9750F15D7856', routers: '0xF9c2b5746c946EF883ab2660BbbB1f10A5bdeAb4', - farms: [], + farms: ['0x7D5ba536ab244aAA1EA42aB88428847F25E3E676'], farmv2Quoter: '0x6AFeb9EDd6Cf44fA8E89b1eee28284e6dD7705C8', farmV2S: ['0x3D6AfE2fB73fFEd2E3dD00c501A174554e147a43'], }, diff --git a/src/constants/networks/index.ts b/src/constants/networks/index.ts index 352f7387a7..d1a7d0a58e 100644 --- a/src/constants/networks/index.ts +++ b/src/constants/networks/index.ts @@ -16,6 +16,5 @@ export { default as optimism } from './optimism' export { default as solana } from './solana' export { default as velas } from './velas' export { default as zksync } from './zksync' -export { default as lineaTestnet } from './linea-testnet' export { default as linea } from './linea' export { default as solanaDevnet } from './solana-devnet' diff --git a/src/constants/networks/linea-testnet.ts b/src/constants/networks/linea-testnet.ts deleted file mode 100644 index 6fb4aa49b7..0000000000 --- a/src/constants/networks/linea-testnet.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { ChainId } from '@kyberswap/ks-sdk-core' - -import EthereumLogo from 'assets/images/ethereum-logo.png' -import { EVMNetworkInfo } from 'constants/networks/type' - -const EMPTY = '' -const EMPTY_ARRAY: any[] = [] -const NOT_SUPPORT = null - -const lineaTestnetInfo: EVMNetworkInfo = { - chainId: ChainId.LINEA_TESTNET, - route: 'linea-goerli', - ksSettingRoute: 'linea-goerli', - priceRoute: 'linea-goerli', - poolFarmRoute: 'linea-goerli', - aggregatorRoute: 'linea-goerli', - name: 'Linea Testnet', - icon: 'https://linea.build/apple-touch-icon.png', - iconDark: NOT_SUPPORT, - iconSelected: NOT_SUPPORT, - iconDarkSelected: NOT_SUPPORT, - defaultBlockSubgraph: 'https://thegraph.goerli.zkevm.consensys.net/subgraphs/name/kybernetwork/linea-blocks', - etherscanUrl: 'https://goerli.lineascan.build', - etherscanName: 'Linea Explorer', - bridgeURL: EMPTY, - nativeToken: { - symbol: 'ETH', - name: 'LineaETH', - logo: EthereumLogo, - decimal: 18, - minForGas: 10 ** 16, - }, - defaultRpcUrl: 'https://rpc.goerli.linea.build', - multicall: '0xcA11bde05977b3631167028862bE2a173976CA11', - classic: { - defaultSubgraph: 'https://thegraph.goerli.zkevm.consensys.net/subgraphs/name/kybernetwork/kyberswap-exchange-linea', - static: { - zap: '0x12731092dD6215872C5850b3782A07b6e3E15c9C', - router: '0x179A3d2e958D185F47D1Db046b796C5242d68981', - factory: '0x7d1EDa469a4b6BFe4DB07fABC75da65F2b90DE6E', - }, - oldStatic: NOT_SUPPORT, - dynamic: NOT_SUPPORT, - claimReward: NOT_SUPPORT, - fairlaunch: EMPTY_ARRAY, - fairlaunchV2: EMPTY_ARRAY, - }, - elastic: { - defaultSubgraph: 'https://thegraph.goerli.zkevm.consensys.net/subgraphs/name/kybernetwork/kyberswap-elastic-linea', - startBlock: 847294, - coreFactory: '0x40b7Ae13F825DE3D422032E8EC66F81d42fAD2ac', - nonfungiblePositionManager: '0x50C11d49a6c4e95e49A6D96FbCE8ee208921Bb47', - tickReader: '0x32fa66849b9EDC8F144D8764EbF045eF0f508Bb8', - initCodeHash: '0x00e263aaa3a2c06a89b53217a9e7aad7e15613490a72e0f95f303c4de2dc7045', - quoter: '0xd47AbBEAE91043e4FC195b9416D4f0A24Bb52718', - routers: '0x3565e6927239619fDFbd6405C4f0d9C2de58137B', - farms: [], - }, - limitOrder: { - production: NOT_SUPPORT, - development: NOT_SUPPORT, - }, - averageBlockTimeInSeconds: 2, // TODO: check these info - coingeckoNetworkId: NOT_SUPPORT, - coingeckoNativeTokenId: NOT_SUPPORT, - deBankSlug: EMPTY, - dexToCompare: NOT_SUPPORT, - geckoTermialId: NOT_SUPPORT, -} - -export default lineaTestnetInfo diff --git a/src/constants/networks/linea.ts b/src/constants/networks/linea.ts index b5e956debc..4b1ff18f00 100644 --- a/src/constants/networks/linea.ts +++ b/src/constants/networks/linea.ts @@ -15,7 +15,7 @@ const lineaInfo: EVMNetworkInfo = { poolFarmRoute: 'linea', aggregatorRoute: 'linea', name: 'Linea', - icon: 'https://linea.build/apple-touch-icon.png', + icon: 'https://storage.googleapis.com/ks-setting-a3aa20b7/5c7ac975-e5af-4a02-8586-da6acfee9ec8.svg', iconDark: NOT_SUPPORT, iconSelected: NOT_SUPPORT, iconDarkSelected: NOT_SUPPORT, diff --git a/src/constants/networks/matic.ts b/src/constants/networks/matic.ts index ff455a4447..7d05a9e163 100644 --- a/src/constants/networks/matic.ts +++ b/src/constants/networks/matic.ts @@ -1,6 +1,5 @@ import { ChainId } from '@kyberswap/ks-sdk-core' -import Polygon from 'assets/networks/polygon-network.png' import { EVMNetworkInfo } from 'constants/networks/type' const EMPTY = '' @@ -13,8 +12,8 @@ const maticInfo: EVMNetworkInfo = { priceRoute: 'polygon', poolFarmRoute: 'polygon', aggregatorRoute: 'polygon', - name: 'Polygon', - icon: Polygon, + name: 'Polygon PoS', + icon: 'https://storage.googleapis.com/ks-setting-a3aa20b7/78dfb4fb-089b-431d-8725-b5de2cea0bfc.svg', iconDark: NOT_SUPPORT, iconSelected: NOT_SUPPORT, iconDarkSelected: NOT_SUPPORT, @@ -25,7 +24,7 @@ const maticInfo: EVMNetworkInfo = { nativeToken: { symbol: 'MATIC', name: 'Polygon', - logo: Polygon, + logo: 'https://storage.googleapis.com/ks-setting-a3aa20b7/78dfb4fb-089b-431d-8725-b5de2cea0bfc.svg', decimal: 18, minForGas: 10 ** 17, }, diff --git a/src/constants/networks/mumbai.ts b/src/constants/networks/mumbai.ts index 4fb0d89f7b..5f6a045c48 100644 --- a/src/constants/networks/mumbai.ts +++ b/src/constants/networks/mumbai.ts @@ -1,6 +1,5 @@ import { ChainId } from '@kyberswap/ks-sdk-core' -import Polygon from 'assets/networks/polygon-network.png' import { EVMNetworkInfo } from 'constants/networks/type' const EMPTY = '' @@ -15,7 +14,7 @@ const mumbaiInfo: EVMNetworkInfo = { poolFarmRoute: EMPTY, aggregatorRoute: 'mumbai', name: 'Mumbai', - icon: Polygon, + icon: 'https://storage.googleapis.com/ks-setting-a3aa20b7/78dfb4fb-089b-431d-8725-b5de2cea0bfc.svg', iconDark: NOT_SUPPORT, iconSelected: NOT_SUPPORT, iconDarkSelected: NOT_SUPPORT, @@ -26,7 +25,7 @@ const mumbaiInfo: EVMNetworkInfo = { nativeToken: { symbol: 'MATIC', name: 'Polygon', - logo: Polygon, + logo: 'https://storage.googleapis.com/ks-setting-a3aa20b7/78dfb4fb-089b-431d-8725-b5de2cea0bfc.svg', decimal: 18, minForGas: 10 ** 16, }, diff --git a/src/constants/networks/zkevm.ts b/src/constants/networks/zkevm.ts new file mode 100644 index 0000000000..413f621558 --- /dev/null +++ b/src/constants/networks/zkevm.ts @@ -0,0 +1,76 @@ +import { ChainId } from '@kyberswap/ks-sdk-core' + +import EthereumLogo from 'assets/images/ethereum-logo.png' +import { EVMNetworkInfo } from 'constants/networks/type' + +const EMPTY = '' +const EMPTY_ARRAY: any[] = [] +const NOT_SUPPORT = null + +const zkEvm: EVMNetworkInfo = { + chainId: ChainId.ZKEVM, + route: 'polygon-zkevm', + ksSettingRoute: 'polygon-zkevm', + priceRoute: 'polygon-zkevm', + poolFarmRoute: 'polygon-zkevm', + aggregatorRoute: 'polygon-zkevm', + name: 'Polygon zkEVM', + icon: 'https://storage.googleapis.com/ks-setting-a3aa20b7/013aecc7-9868-4b06-a056-7dd5997b4139.svg', + iconDark: NOT_SUPPORT, + iconSelected: NOT_SUPPORT, + iconDarkSelected: NOT_SUPPORT, + defaultBlockSubgraph: + 'https://polygon-zkevm-graph.kyberengineering.io/subgraphs/name/kybernetwork/polygon-zkevm-blocks', + etherscanUrl: 'https://zkevm.polygonscan.com', + etherscanName: 'Polygon zkEVM Explorer', + bridgeURL: EMPTY, + nativeToken: { + symbol: 'ETH', + name: 'ETH', + logo: EthereumLogo, + decimal: 18, + minForGas: 10 ** 16, + }, + defaultRpcUrl: 'https://zkevm-rpc.com', + multicall: '0xcA11bde05977b3631167028862bE2a173976CA11', + classic: { + defaultSubgraph: + 'https://polygon-zkevm-graph.kyberengineering.io/subgraphs/name/kybernetwork/kyberswap-exchange-polygon-zkevm', + static: { + zap: '0x2abE8750e4a65584d7452316356128C936273e0D', + router: '0x5649B4DD00780e99Bab7Abb4A3d581Ea1aEB23D0', + factory: '0x1c758aF0688502e49140230F6b0EBd376d429be5', + }, + oldStatic: NOT_SUPPORT, + dynamic: NOT_SUPPORT, + claimReward: NOT_SUPPORT, + fairlaunch: EMPTY_ARRAY, + fairlaunchV2: EMPTY_ARRAY, + }, + elastic: { + defaultSubgraph: + 'https://polygon-zkevm-graph.kyberengineering.io/subgraphs/name/kybernetwork/kyberswap-elastic-polygon-zkevm', + startBlock: 4164470, + coreFactory: '0xC7a590291e07B9fe9E64b86c58fD8fC764308C4A', + nonfungiblePositionManager: '0xe222fBE074A436145b255442D919E4E3A6c6a480', + tickReader: '0x8Fd8Cb948965d9305999D767A02bf79833EADbB3', + initCodeHash: '0x00e263aaa3a2c06a89b53217a9e7aad7e15613490a72e0f95f303c4de2dc7045', + quoter: '0x4d47fd5a29904Dae0Ef51b1c450C9750F15D7856', + routers: '0xF9c2b5746c946EF883ab2660BbbB1f10A5bdeAb4', + farms: ['0x7D5ba536ab244aAA1EA42aB88428847F25E3E676'], + farmv2Quoter: '0x6AFeb9EDd6Cf44fA8E89b1eee28284e6dD7705C8', + farmV2S: ['0x3D6AfE2fB73fFEd2E3dD00c501A174554e147a43', '0xf2BcDf38baA52F6b0C1Db5B025DfFf01Ae1d6dBd'], + }, + limitOrder: { + production: NOT_SUPPORT, + development: NOT_SUPPORT, + }, + averageBlockTimeInSeconds: 2, // TODO: check these info + coingeckoNetworkId: 'polygon-zkevm', + coingeckoNativeTokenId: 'ethereum', + deBankSlug: EMPTY, + dexToCompare: NOT_SUPPORT, + geckoTermialId: NOT_SUPPORT, +} + +export default zkEvm diff --git a/src/constants/networks/zksync.ts b/src/constants/networks/zksync.ts index a567a5b412..2178bd64fe 100644 --- a/src/constants/networks/zksync.ts +++ b/src/constants/networks/zksync.ts @@ -1,7 +1,6 @@ import { ChainId } from '@kyberswap/ks-sdk-core' import EthereumLogo from 'assets/images/ethereum-logo.png' -import zkSync from 'assets/networks/zksync-network.png' import { EVMNetworkInfo } from 'constants/networks/type' const EMPTY = '' @@ -18,7 +17,7 @@ const zkSyncInfo: EVMNetworkInfo = { poolFarmRoute: 'zksync', aggregatorRoute: 'zksync', name: 'zkSync Era', - icon: zkSync, + icon: 'https://storage.googleapis.com/ks-setting-a3aa20b7/ad122023-76dd-4cdd-ad5a-7572726f004f.svg', iconDark: NOT_SUPPORT, iconSelected: NOT_SUPPORT, iconDarkSelected: NOT_SUPPORT, diff --git a/src/constants/tokens.ts b/src/constants/tokens.ts index a133595a66..dc7030a6c1 100644 --- a/src/constants/tokens.ts +++ b/src/constants/tokens.ts @@ -64,7 +64,7 @@ export const STABLE_COIN_ADDRESSES_TO_TAKE_FEE: Record = { [ChainId.FANTOM]: [], [ChainId.BSCMAINNET]: [], [ChainId.ARBITRUM]: [], - [ChainId.LINEA_TESTNET]: [], + [ChainId.ZKEVM]: [], [ChainId.LINEA]: [], [ChainId.SOLANA_DEVNET]: [], } @@ -163,7 +163,12 @@ export const SUPER_STABLE_COINS_ADDRESS: { [chainId in ChainId]: string[] } = { [ChainId.MUMBAI]: [], [ChainId.BSCTESTNET]: [], [ChainId.AVAXTESTNET]: [], - [ChainId.LINEA_TESTNET]: [], + [ChainId.ZKEVM]: [ + '0xA8CE8aee21bC2A48a5EF670afCc9274C7bbbC035', // USDC + '0x1E4a5963aBFD975d8c9021ce480b42188849D41d', // USDT + '0xC5015b9d9161Dca7e18e32f6f25C4aD850731Fd4', // DAI + ], + [ChainId.LINEA]: [], [ChainId.SOLANA_DEVNET]: [], } @@ -213,7 +218,7 @@ export const CORRELATED_COINS_ADDRESS: { [chainId in ChainId]: string[][] } = { [ChainId.MUMBAI]: [], [ChainId.BSCTESTNET]: [], [ChainId.AVAXTESTNET]: [], - [ChainId.LINEA_TESTNET]: [], + [ChainId.ZKEVM]: [], [ChainId.LINEA]: [], [ChainId.SOLANA_DEVNET]: [], } @@ -292,16 +297,8 @@ export const DAI: { [chainId in ChainId]: Token } = { 'DAI', 'Dai Stablecoin', ), - [ChainId.LINEA_TESTNET]: new Token( - ChainId.LINEA_TESTNET, - '0x8741Ba6225A6BF91f9D73531A98A89807857a2B3', - 18, - 'DAI', - 'Dai', - ), - - //not existing - [ChainId.LINEA]: new Token(ChainId.LINEA, '0x8741Ba6225A6BF91f9D73531A98A89807857a2B3', 18, 'DAI', 'Dai'), + [ChainId.ZKEVM]: new Token(ChainId.ZKEVM, '0xC5015b9d9161Dca7e18e32f6f25C4aD850731Fd4', 18, 'DAI', 'Dai'), + [ChainId.LINEA]: new Token(ChainId.LINEA, '0x4AF15ec2A0BD43Db75dd04E62FAA3B8EF36b00d5', 18, 'DAI', 'Dai'), //not existing on Velas [ChainId.VELAS]: new Token(ChainId.VELAS, '0xe7dC549AE8DB61BDE71F22097BEcc8dB542cA100', 18, 'DAI', 'Dai Stablecoin'), @@ -387,16 +384,8 @@ export const USDC: { [chainId in ChainId]: Token } = { 'USDC', 'USD Coin', ), - [ChainId.LINEA_TESTNET]: new Token( - ChainId.LINEA_TESTNET, - '0xf56dc6695cF1f5c364eDEbC7Dc7077ac9B586068', - 6, - 'USDC', - 'USD Coin', - ), - - // not existing - [ChainId.LINEA]: new Token(ChainId.LINEA, '0xf56dc6695cF1f5c364eDEbC7Dc7077ac9B586068', 6, 'USDC', 'USD Coin'), + [ChainId.ZKEVM]: new Token(ChainId.ZKEVM, '0xA8CE8aee21bC2A48a5EF670afCc9274C7bbbC035', 6, 'USDC', 'USD Coin'), + [ChainId.LINEA]: new Token(ChainId.LINEA, '0x176211869cA2b568f2A7D4EE941E073a821EE1ff', 6, 'USDC', 'USD Coin'), } export const USDT: { [chainId in ChainId]: Token } = { @@ -452,17 +441,8 @@ export const USDT: { [chainId in ChainId]: Token } = { 'USDT', 'Tether USD', ), - - [ChainId.LINEA_TESTNET]: new Token( - ChainId.LINEA_TESTNET, - '0x1990BC6dfe2ef605Bfc08f5A23564dB75642Ad73', - 6, - 'USDT', - 'Tether USD', - ), - - // not existing - [ChainId.LINEA]: new Token(ChainId.LINEA, '0x1990BC6dfe2ef605Bfc08f5A23564dB75642Ad73', 6, 'USDT', 'Tether USD'), + [ChainId.ZKEVM]: new Token(ChainId.ZKEVM, '0x1E4a5963aBFD975d8c9021ce480b42188849D41d', 6, 'USDT', 'Tether USD'), + [ChainId.LINEA]: new Token(ChainId.LINEA, '0xA219439258ca9da29E9Cc4cE5596924745e12B93', 6, 'USDT', 'Tether USD'), [ChainId.ZKSYNC]: new Token(ChainId.ZKSYNC, '0x493257fd37edb34451f62edf8d2a0c418852ba4c', 6, 'USDT', 'Tether USD'), [ChainId.SOLANA]: new Token(ChainId.SOLANA, 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB', 6, 'USDT', 'Tether USD'), @@ -557,6 +537,8 @@ export const KNC: { [chainId in ChainId]: Token } = { 'KNC', 'Kyber Network Crystal', ), + [ChainId.LINEA]: new Token(ChainId.LINEA, '0x3b2F62d42DB19B30588648bf1c184865D4C3B1D6', 18, 'KNC', 'KNC'), + // TODO(viet-nv): this address doesn't exist. check again [ChainId.ZKSYNC]: new Token( ChainId.ZKSYNC, @@ -581,15 +563,7 @@ export const KNC: { [chainId in ChainId]: Token } = { ), // not existing - [ChainId.LINEA_TESTNET]: new Token( - ChainId.LINEA_TESTNET, - '0x6Cb9750a92643382e020eA9a170AbB83Df05F30B', - 6, - 'KNC', - 'KNC', - ), - // not existing - [ChainId.LINEA]: new Token(ChainId.LINEA, '0x6Cb9750a92643382e020eA9a170AbB83Df05F30B', 6, 'KNC', 'KNC'), + [ChainId.ZKEVM]: new Token(ChainId.ZKEVM, '0x3b2F62d42DB19B30588648bf1c184865D4C3B1D6', 18, 'KNC', 'KNC'), } export const PINNED_PAIRS: { readonly [chainId in ChainId]?: [Token, Token][] } = { @@ -619,8 +593,8 @@ export const DEFAULT_OUTPUT_TOKEN_BY_CHAIN: Partial> = { [ChainId.SOLANA]: USDC[ChainId.SOLANA], [ChainId.GÖRLI]: KNC[ChainId.GÖRLI], [ChainId.ZKSYNC]: USDC[ChainId.ZKSYNC], - [ChainId.LINEA_TESTNET]: USDC[ChainId.LINEA_TESTNET], - [ChainId.LINEA]: new Token(ChainId.LINEA, '0x7d43aabc515c356145049227cee54b608342c0ad', 18, 'BUSD', 'BUSD'), + [ChainId.ZKEVM]: USDT[ChainId.ZKEVM], + [ChainId.LINEA]: USDC[ChainId.LINEA], } export const DEFAULT_SWAP_FEE_STABLE_PAIRS = 4 diff --git a/src/pages/About/AboutKyberSwap/index.tsx b/src/pages/About/AboutKyberSwap/index.tsx index 7b6fe7df11..c192e0ded4 100644 --- a/src/pages/About/AboutKyberSwap/index.tsx +++ b/src/pages/About/AboutKyberSwap/index.tsx @@ -30,37 +30,24 @@ import Banner from 'components/Banner' import { ButtonEmpty, ButtonLight } from 'components/Button' import { FooterSocialLink } from 'components/Footer/Footer' import { - Arbitrum, - Aurora, AuroraFull, - Avalanche, BestPrice, - Binance, - Bttc, CircleFocus, Clock, - Cronos, CronosLogoFull, Drop, Enter, - Ethereum, - Fantom, FantomLogoFull, FarmIcon, LineaFull, LowestSlippage, MoneyBagOutline, - Oasis, OasisLogoFull, - OptimismLogo, OptimismLogoFull, - Polygon, PolygonLogoFull, - Velas, VelasLogoFull, } from 'components/Icons' import AntiSnippingAttack from 'components/Icons/AntiSnippingAttack' -import ZkSync from 'components/Icons/ZkSync' import ZkSyncFull from 'components/Icons/ZkSyncFull' import Loader from 'components/Loader' import { APP_PATHS } from 'constants/index' @@ -510,21 +497,19 @@ function AboutKyberSwap() { - - - - - - - - - - - - - {/* */} - - Linea + {MAINNET_NETWORKS.map(chain => ( + {NETWORKS_INFO[chain].name} + ))} @@ -1046,6 +1031,15 @@ function AboutKyberSwap() { {/* */} + zkevm diff --git a/src/state/user/actions.ts b/src/state/user/actions.ts index 23186d7acd..a4b07c0881 100644 --- a/src/state/user/actions.ts +++ b/src/state/user/actions.ts @@ -28,9 +28,6 @@ export const updateUserLocale = createAction<{ userLocale: SupportedLocale }>('u export const updateUserSlippageTolerance = createAction<{ userSlippageTolerance: number }>( 'user/updateUserSlippageTolerance', ) -export const updateUserSlippageToleranceForLineaTestnet = createAction<{ userSlippageTolerance: number }>( - 'user/updateUserSlippageToleranceForLineaTestnet', -) export const updateUserDeadline = createAction<{ userDeadline: number }>('user/updateUserDeadline') export const addSerializedToken = createAction<{ serializedToken: SerializedToken }>('user/addSerializedToken') diff --git a/src/state/user/hooks.tsx b/src/state/user/hooks.tsx index 6e3d3e1abd..8ce90dc275 100644 --- a/src/state/user/hooks.tsx +++ b/src/state/user/hooks.tsx @@ -4,7 +4,7 @@ import { useDispatch, useSelector } from 'react-redux' import { useGetParticipantInfoQuery } from 'services/kyberAISubscription' import { SUGGESTED_BASES } from 'constants/bases' -import { DEFAULT_SLIPPAGE_TESTNET, TERM_FILES_PATH } from 'constants/index' +import { TERM_FILES_PATH } from 'constants/index' import { SupportedLocale } from 'constants/locales' import { PINNED_PAIRS } from 'constants/tokens' import { useActiveWeb3React } from 'hooks' @@ -49,7 +49,6 @@ import { updateUserDegenMode, updateUserLocale, updateUserSlippageTolerance, - updateUserSlippageToleranceForLineaTestnet, } from 'state/user/actions' import { CROSS_CHAIN_SETTING_DEFAULT, CrossChainSetting, VIEW_MODE } from 'state/user/reducer' import { isAddress, isChristmasTime } from 'utils' @@ -154,23 +153,15 @@ export function useDegenModeManager(): [boolean, () => void] { export function useUserSlippageTolerance(): [number, (slippage: number) => void] { const dispatch = useDispatch() - const { chainId } = useActiveWeb3React() - const isLineaTestnet = chainId === ChainId.LINEA_TESTNET const userSlippageTolerance = useSelector(state => { - return isLineaTestnet - ? state.user.userSlippageToleranceForLineaTestnet || DEFAULT_SLIPPAGE_TESTNET - : state.user.userSlippageTolerance + return state.user.userSlippageTolerance }) const setUserSlippageTolerance = useCallback( (userSlippageTolerance: number) => { - if (isLineaTestnet) { - dispatch(updateUserSlippageToleranceForLineaTestnet({ userSlippageTolerance })) - } else { - dispatch(updateUserSlippageTolerance({ userSlippageTolerance })) - } + dispatch(updateUserSlippageTolerance({ userSlippageTolerance })) }, - [dispatch, isLineaTestnet], + [dispatch], ) return [userSlippageTolerance, setUserSlippageTolerance] diff --git a/src/state/user/reducer.ts b/src/state/user/reducer.ts index 5adcce2af2..bf865318e1 100644 --- a/src/state/user/reducer.ts +++ b/src/state/user/reducer.ts @@ -6,7 +6,6 @@ import { DEFAULT_DEADLINE_FROM_NOW, DEFAULT_SLIPPAGE, DEFAULT_SLIPPAGE_STABLE_PAIR_SWAP, - DEFAULT_SLIPPAGE_TESTNET, INITIAL_ALLOWED_SLIPPAGE, MAX_NORMAL_SLIPPAGE_IN_BIPS, } from 'constants/index' @@ -43,7 +42,6 @@ import { updateUserDegenMode, updateUserLocale, updateUserSlippageTolerance, - updateUserSlippageToleranceForLineaTestnet, } from './actions' const currentTimestamp = () => new Date().getTime() @@ -75,8 +73,6 @@ export interface UserState { // user defined slippage tolerance in bips, used in all txns userSlippageTolerance: number - userSlippageToleranceForLineaTestnet: number - // deadline set by user in minutes, used in all txns userDeadline: number @@ -164,7 +160,6 @@ const initialState: UserState = { userDegenModeAutoDisableTimestamp: 0, userLocale: null, userSlippageTolerance: INITIAL_ALLOWED_SLIPPAGE, - userSlippageToleranceForLineaTestnet: DEFAULT_SLIPPAGE_TESTNET, userDeadline: DEFAULT_DEADLINE_FROM_NOW, tokens: {}, pairs: {}, @@ -256,10 +251,6 @@ export default createReducer(initialState, builder => state.userSlippageTolerance = action.payload.userSlippageTolerance state.timestamp = currentTimestamp() }) - .addCase(updateUserSlippageToleranceForLineaTestnet, (state, action) => { - state.userSlippageToleranceForLineaTestnet = action.payload.userSlippageTolerance - state.timestamp = currentTimestamp() - }) .addCase(updateUserDeadline, (state, action) => { state.userDeadline = action.payload.userDeadline state.timestamp = currentTimestamp() diff --git a/src/utils/aggregationRouting.ts b/src/utils/aggregationRouting.ts index 9a4d87e7e8..36e9695aac 100644 --- a/src/utils/aggregationRouting.ts +++ b/src/utils/aggregationRouting.ts @@ -196,18 +196,12 @@ export function getTradeComposition( }) if (index === 0) { - const token = tokens[hop.tokenIn] || defaultToken - path.push( - allTokens?.[isAddressString(chainId, token.address)] || - new Token(chainId, token.address, token.decimals, token.symbol, token.name), - ) + const token = getTokenFromAddress(hop.tokenIn) + path.push(token) } - const token = allTokens?.[isAddressString(chainId, hop.tokenOut)] || tokens[hop.tokenOut] || defaultToken - path.push( - allTokens?.[isAddressString(chainId, token.address)] || - new Token(chainId, token.address, token.decimals, token.symbol, token.name), - ) + const token = getTokenFromAddress(hop.tokenOut) + path.push(token) }) routes.push({ slug: path diff --git a/src/utils/index.ts b/src/utils/index.ts index 478da2b351..712f6c979b 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -57,6 +57,7 @@ export function getEtherscanLink( return `${prefix}/tx/${data}` } case 'token': { + if (chainId === ChainId.ZKSYNC) return `${prefix}/address/${data}` return `${prefix}/token/${data}` } case 'block': { diff --git a/src/utils/priceImpact.ts b/src/utils/priceImpact.ts index 530464eec9..985f5fd4dc 100644 --- a/src/utils/priceImpact.ts +++ b/src/utils/priceImpact.ts @@ -1,19 +1,6 @@ -import { ChainId } from '@kyberswap/ks-sdk-core' - -import { CHAINS_BYPASS_PRICE_IMPACT } from 'constants/networks' import { checkPriceImpact } from 'utils/prices' -export const checkShouldDisableByPriceImpact = ( - chainId: ChainId, - isDegenMode: boolean, - priceImpact: number | undefined, -) => { +export const checkShouldDisableByPriceImpact = (isDegenMode: boolean, priceImpact: number | undefined) => { const priceImpactResult = checkPriceImpact(priceImpact) - return checkAllowBypassPriceImpactRestriction(chainId) - ? false - : !isDegenMode && (priceImpactResult.isVeryHigh || priceImpactResult.isInvalid) -} - -export const checkAllowBypassPriceImpactRestriction = (chainId: ChainId) => { - return CHAINS_BYPASS_PRICE_IMPACT.includes(chainId) + return !isDegenMode && (priceImpactResult.isVeryHigh || priceImpactResult.isInvalid) } diff --git a/src/utils/slippage.ts b/src/utils/slippage.ts index 8a6df00584..f4db43dec5 100644 --- a/src/utils/slippage.ts +++ b/src/utils/slippage.ts @@ -1,6 +1,4 @@ -import { ChainId } from '@kyberswap/ks-sdk-core' - -import { DEFAULT_SLIPPAGE, DEFAULT_SLIPPAGE_STABLE_PAIR_SWAP, DEFAULT_SLIPPAGE_TESTNET } from 'constants/index' +import { DEFAULT_SLIPPAGE, DEFAULT_SLIPPAGE_STABLE_PAIR_SWAP } from 'constants/index' export enum SLIPPAGE_STATUS { NORMAL, @@ -8,11 +6,7 @@ export enum SLIPPAGE_STATUS { HIGH, } -export const getDefaultSlippage = (chainId: ChainId, isStablePairSwap: boolean): number => { - if (chainId === ChainId.LINEA_TESTNET) { - return DEFAULT_SLIPPAGE_TESTNET - } - +export const getDefaultSlippage = (isStablePairSwap: boolean): number => { return isStablePairSwap ? DEFAULT_SLIPPAGE_STABLE_PAIR_SWAP : DEFAULT_SLIPPAGE } diff --git a/yarn.lock b/yarn.lock index 078f7e665b..ab6ee27380 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2068,10 +2068,10 @@ tiny-warning "^1.0.3" toformat "^2.0.0" -"@kyberswap/ks-sdk-core@1.0.8", "@kyberswap/ks-sdk-core@^1.0.5": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@kyberswap/ks-sdk-core/-/ks-sdk-core-1.0.8.tgz#11dbcbc7fd2d1243e221c5e7436be2b7735ee108" - integrity sha512-mbOr9oLcEmtKWdyXKio4pUWRBX0qkFHOrNmSet81MsXMCgIz59hMFqlZ7KSNL8j8iOJOR79j7s8deOUtghQsKA== +"@kyberswap/ks-sdk-core@1.0.9", "@kyberswap/ks-sdk-core@^1.0.5": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@kyberswap/ks-sdk-core/-/ks-sdk-core-1.0.9.tgz#9cb4915a9703948e840e62f332daca1282fcf189" + integrity sha512-kl2o0sw3Q+rR6KHxQbe57Gl2ajWv9IGaboOaRSpxCKsmA27hRmVaaiMmbbWfJNh8h6UZB9WohEoG/U48kD7o4Q== dependencies: "@ethersproject/address" "^5.0.2" "@solana/web3.js" "^1.66.2"