?!St5Ih7#c}t;)1%ac2oulk6SQGYAnZVQ2;;jhQ
zYe?9bip92i5CUr6#WSHSM0ae8}X22VW=k
zB~trTx}Cj1Bt4!in|tkA=F}BB~M+uJ>_!Y??)LVs3WBjhGzhfZ2&TK
zIyGPWG`07&iMq4_)w>;r8~m2ZA$1aJdNZ*Gm(m-J=ZBg-0QP>LLcwmfA4UnkFsz+r&
zZCHN4=f#xU6)oeYXt|?dU;*|kdEsyOAXeR-i(k&k0-Gv(dCQn(ITxrXu4&0A^(78U
zId#{6ib#ui;9Oi!2E{f`R&
z!QyTEkKBOSSZQOJ1b=bwfb#dZNnWJ0pZ7#@t0;HWIkv}A
zQSTt!z_Ti;q)`I0MfAtPZi?Gp;h~J9-xsqY0JnoPJ-W5DLKH0Zq6v~-LAF?tdWb9K
z)eK)63|lG&M&m9#ddXT$EDY
zzuV4n@7Fg8eX)iyv<5%x_I^-V)t)G-09*_|7HN>gAHA>qlkV*NbZW7l{5Aa>E9;tP
z&_fQ34^+i?XRat$6Y{%6JCx(Ip*~Y{_?a
zZIH0xLsyQ8Z_II$TvUpCcUM=!t@}H@XuJqb;<_M{!g^D_8G{*E*aoNGhj|=_UT+oZFaEqbZ8i=d2arXfzs)6sLH1p81)wxUq)Zz
zY8DQOwd@yd%Dzb9$r_cR3=RU@gg?*xdQ!>6)$
zy_ODNsWn4yZk_^sTyMc!cQ#Ua|0$sFH+!MH{)+vK)&Div(i3H6Yz;0n;f_e(44VHu
z)(}6MrvWskWW3~AN!vKAE1mIG?;r#3*7Ma|Z99gtiUoO9I`&<@lXuD!EYF=pcalE2
z*;*i16B>%p5l>kJP`nn0xAfWB8Z-d-R#z@mbxPS9*xB7Uw6@DRXS|gd`?fKZtHysV
z2`SKMm>{MEdT9(45T|bP+xN84vK7~u(8ho;|HYT>4mhJnu?yL6SantCUxWqml~Wd?
zY*_5nwr6dRGS_}#q%L(%JF#W}t6bZZpzb)b22|U0cDdqstDq)ri
zh4-S_*D$qjFL1t;s!zG!UpENax?%&kLl5Wfl=JSEq{$+cK|6+T$CF$R>$PUsRxjJY
z_N2sz-$E7(Wz`MeL;sP7U7zBpJO;>#0}QM?IN9gzC*Ih-iDgF+Q6$JqepB^sXRuiX
zxzVQ{`uB2f&x>=b@Ctkt-O~juTtUgbWZ;j5zhwKr;eFcbn`vszGf;^#k#O`nf_RUE
z$649-uOmhrj^|q#W%YNc#*m!6Fd+Zka737g4YYZYKw!?@XuP*H1d(1EXK%2
zKf1W`oFC4{qke8B{tGIx%|BM4sth1*Ul*1oY>O<;I^bOIe76e6A&tc=z|EdOwwfas
z-R<}G6e+4AwgzYkrqKYY=z+%l=2P3n1vO4}XqnZMTI-BT_t
z{{97^v3Qi4>2PX))am0Lgy{|S5q@0+a_=WTS(IgyqjoSL1D^vP3Kb?Z$S#zM;~iRm
z%o8@-G{z9nYqN>`Sj@vO5gqj-$ElJWRh4Sq61#eJRhf@|&B3V%pRH7Ifgsj8z&@nA
zZ3M)>pWPh_qd5RT{^K@K*P5(eF%DlZ4&hL2Ob+M73^uin_5~W#dpIx|Pi5DHt9w0l
z*6Y$XC%Cr$RRO@4W`qAT(U0wPlBqkr0kFo+v#UW?z!>csN8|MNh3y#z8EfK1wWj~4
z-zNB&tZV7{Gc)u*hoMo%MX{q!$
zEdeSnzYx15egzf5J?lHT#=2oD!KJ@e%I!=5vTVn5aK^cb)hdQJlD`bmd0?)zxm?!#
zE!yrklI{qYZHkht+RvkPaH$WNKMRgk8tut99)b&{1SA8zX`5fCH-pn1(jXNPWBuWO
z1m&Aa#vKDrvhTXS%!^<;9H6Ew3lEIl1HQsP*^5|?=zt!M98>qWC-;o{Y@1A;MN
z_>SOL_T4*TJWLE2kbgS`m+SnM*dDXyFDNF)5?lEb%9DUm0a)~uPL{<&Q*sH)L`H$%
z^#JYwPxheyuhO!Tn`vupy;eV*8Gblxv1JmaB-+#oyCL|COo6GY|0*ZYs(2O-xvc~}
z0ORonxSTs;;*#)ZH!059{|xnd@|8|tx5Y_d_ZpUoZ65hDsqRzhCj>q;P9902p?L07
zWmGH|^og;K)0KJm`!xlg?h+i3C2jYhFW>K@?4qSVnQj6z&9@WFz!+=@(`B}?8HL-^
ztV&evbAeFvi2E=;QSHEr+*30+VtJ&oHF1sNdcXS3F{Rai*Uj0adPRJSt4PIIzO_`Q
zo5zgap_3BAR79IdWTVgax!`UD^9-6XW{SJsg=S;okK67$gNj#)`GrM&!-SU#bE?h~
zmFlf|-09fxjeuGRaO|T`Y@EVqxQ8$0SK$MxfR31PTkdFGimAX@`$|UX%(yfW&(7qy
z2Z9B(rasAae2)k^)nvfA>rJ62!1RE)y&5uhfuc5xp!#aWAm%9mrGe-ez_)qu5Si=0
zkQZFj^fV*xkT^BV%~4PNuNec6RIENnfhrzZzX5S9GLUDknHoFLV|1L
zcLgU$*3sAUt7wxF)Xz2_I?3<$;r=_|8^S^wR)6V9pM0WHk#8dVQLY`Ryiyix@~CPX
zH=o~903CuUl0=|%rsPQh+*!eB!~_{QYEvSCcTy|V0m-I
zfUUQ51E|sS1fDiw+Y20*7riGKfgg751?^Qo!i0+7A_{OmcFNDZyHcmxSfHR7KEPkDC<|DC`z%*xAoVM;2Jd)kz2;CgCxa5?&Ko3ogA5k^C*Hq<2*l$Q43g0Svd>r
z@`fMJIQ~(AM#6C>u@cS1_*w}jQ>NjIyD2~s8O`*y9lYd>*;sqO+2#>cvfFV;4+{wI
zUugg+26YJ7$-4DQvXcGlDpQ`Am(idR`g37EGppPy(^HH++or;
z+#=P|{yK?&7eC%;rxGk~^;1#rAGQF*R)Ftu>ujwwT=d(S^u1awgWGTK17&E~!B^4qf;UrXggrtX4dIzZC(R@Qv6
zPzm;kW#<&mC8}D^3J$FTAy9rw36xuQBMfpJcV+1ZbzJ(}F!eC+q^JGY*h6^#>X=ss&ZNTW0sVC`EjIpIrvuQr)s%TztVjI(i0dtDu?@
zG%29U1Lhy|hZ%Ft8p5(@Qu-kkyGf3?Sqk-h9=Sto(QSM@LApeNl~NhgkiGkDFfiF7
zV_=ark&mhI{gWbffx}fFu+Wf&?P#pOVvSJMVTNCreno7f?nWp5bJR{&R)}cbWEa1k
z`ZGwEbT7?nk}270eS&S8U#Tv)M*H1?V`-3{<)0j5a{9nbDIWVyrei6_c!G66SE1ZS
zJOAdvZ9h0+S56J+n3c!EWk3nye*?L9f|q_kfRlnm`|0r8MBy~{N;)*+y0OPX`wOv9
z`9pJ&RjPj+06^Wm462yev5@m1{uglhWF+|Z#0gVv3wv+
ztOEzvr0fVmy7axQ(^qo4!v5E?oxu15@L1>mk%CjKD8u?{%$In4T%;9f+-1Zu`FQn1b8_$Eb^%o?
z#T+2|ne&z-r+e>&HBh$UNco$t^3P0$HuNjS)rFs%%5&3Z
zbs-Ao!u3}wDqs_pwJsB8M{94fs!yUZ05=z6f!YuR6P_Rf00LN&K;@f$_%!ksFx@XQ
ztKY=gMOp$wQ(sH2T~;)5iA!XFSs8%b#aTyMn8Zs0{uyncmK(eohEEa0q`PcuH8b%V
zx%S2Ol)vb4Fq%@?#rJI)=D)WtF|n;=HQ-?OFmJq}s4wG;+;};YmJQ+aCA$73m!^R(c$O;obF+(XzP}jAN5_wUjHIj;?KBpCYtl3Bh
z97$AMzJp10Xn2`aNBt<#>&XQ@CJ}BZfPGGfd#2(&?aBV1`3mnV&7#M`>qO&{X-ggL
z2$B++%$l_@fi03u7;Wr*??wBG;NCV#THwq8fr;v-9pjyO%7-X*-x|W))e$IqV%z=K
z1Uh^sUbR^MT`6$Q5K^Wt{8#X>+@e2#dZC58;akI`L6GIsc+Lnh@@}3kKb7DfH){-Q
zsKW)}xNU^aM&-bMyeo=vtupg~Cu7j3owQ~Cz;a3?Ki70BQ
zl=mE4PC4D^EV^wtjJ==x?F3IvExIhOf}>L!$XC1-pzf8zpPO3$@hM#bgpZz!EBycy
z&O<1X97hAxP0Y4L@COO}ePaLG{!aOkvpN9rYF^0IVB(py@Ao8i6Xu{v(&zW93_m?G
zp0{}_{(6MpTgg#((;SB%DVzNNEP(8zzeaRA!koUV7ZETl=Vnzaxd|{Ui{>b%-@ERB
zAv0=_ALy9>S`$NtIKks|qUT=Tt{86^?5<4OzGxF$dnV$BdM2Z~!#m@-@DwPxWs8R7
zKJoV!3uV&F>gzSQdNNWUyTIj2iWMq{IUq8t>5I?w$xX?H88|CF@EB0QjVYqlG~11u0eoaE-t
zFxx9|GoSBNH;LAVE#=?DwGN+iRfDQf-!m$Ni-w{DV}?Mv(lIj?B!kqeLS4e%3SCrf81I}(r650#M!z=&m=O3l
z|MdSyD@%muu!e9Jc}QrHsM}`ZT+7Ay0dq%j)*&zs(=0o4V;u=Mny!L&17X&zlPSH`%r`vbjKZ4X)cDLt4q|3z?)aW#0YZno7C=7YX(D
z9recTAZ4ly^HvppXzJU*c!FO4Qnm;6rT-hib!P&^C17SNuQ3#z=Mt9>IG2t6e;r+Q
zKvZ87H2^6Q=>-HNq(OR-lJ4$qet>kBNXLSdbO&r``6w&^2Z1*Nt_84~6vVj2hw##oCzf^Rt(hvJ76AEG&QZ$=>
zW#?ay@rT=LxAM6
zsyb68&&lrV2rav4aA~rF041O)d3mJqDUg4=1FTW+w_@;U81oD%ll+>B%u`?%WB&^aVBm0}Tz-Apu8H7sf~8U#0^2h?7x|c~?P?
zEHg#oocAh{tb@UB53G
z?8h#|5Ik1LI=XuI_Z}%5cxIaJ7}qRe55qiCiH6)YL2)4tRaT6eV3@|HJ#3C_%jSA2
zjEIs&o<^Y9{Xb-O@)oo43-7hRm^-l$Y_wNr=yeI~igY4C^q;GWb)*DCu3CS`@$J93
z=isK_ZtilF3p%DVb(sO-wr`0_Lt^Nm#bW%ksq0#{9q%^HwAEb}l+R_Q>+OkYl{bZp
z2v#xY5Tzn+Pcg}ySDX?SR1m5kgq2b9_c)mi$*5^`B$++fw!>m@n
z2sYK-H1^|z8%F$c7W9*WRB;)5LiVS0*dxBMHz
z0(~``AipDTHkH((T%Y}0SItK*8~OKrNlZzDw(t*Yg>Qa&6%7(gk{`!{-w5a}hHOr1
z7JrJK%xR*^`0JOy6}>ppR;c!@iljfy#4=mIbymPJr(L(>6$`IKts!GelV@e
z_N7=4!i684(o`UyK;`oH_p6Ixax@nP@DlNFJmag^%^Lb?%5A%T09u&rQ78&Ie+e6{
zVF{XP7RG$-sSQA<(GJ2759Ps=n0|dU2>-EONtyZUHV~g6Tyj!0)c+V{Y4x$P92FD?
zoDDS}QPZus{SaGIvmawMy9Jlz&T)oWOH|@zm+z0S7x`ow8b78G_jftfV?_AF
zu;v^*qf|>BLouUV8jXBs3$-vejOliP1QAVC6Z+i2I{*nMvw;?hZ&O>kU`Ryb;L`YJ
zq}AY?SG)~>;T~JeWcq%z_jmS+o9!3jx?%5N2S3SBta@j2h*ru8?D4?7n0=zud;{VB
zU{|0B?Rwqys|2v}`A;5^SoBEkR5f>#;W~$&11~-$fBwzbWSmAoiCIqaCeyr`d`|lr
zmFUI-bu0#o_s41FLPrtw?F^oxP+}_xDP!Bq3PPE?+~NdJzI5W^2xfnii!G6@&J&j|6fHBcgttKi#qj(yKM
z4kpu(pa+L7M;89{i)bwTYWGhRFLNk7yW1(DrrUtSP6eoRrgkCq{#X!E66BI;+Z)nD`;%^DR5Xd
ziJI-qWHvB^Qa;oSrSkc=m$%~l
z_ePJ0-4^S#wb1Vch3$w|8W{wpzY;=|9m!5Rg81Eb4K+y=GJp8?ut2wjNy+O%FM&wn0Sj-O!~ax_
z^IrB_-)_knK!|4Why6B^^*+glZ=f3@yII7I1TPzwhy1QTE_q-a^%1q8MwEZNaa@YM
z{?k{?HWLIZrUKJ4%qy%Eq++ZfcM%+$t<4kI8W`a7Qk08f@D
zlbG<>EnO1YtGb4Pyv{pkXZPqlNgZ@JSoRi_>}-5L^&1xLs|0t&UA5DVj`2DxEz1z5uViB8Ufeb)^dC0o{5WJQ?iPVO-
zzNKB~=(ex#+I&swYv&k-e1eAI0Z7(Q3s4
zq<6nbC>5pQD2N(2U%A-pj0At!`m^kc7L`&OaLM8?}rZj=FZeCOCA4g1N`>UPvm
z0voHNwplvA1wB#cpNc$@WT;FqWEV@fcdy%KARqiv`A0atC4;<6JK;}|oI+(tU?+en
zN>t4ejNp*mi6<TW{@`%-xXY27+#)5O}pFt5-1@ITjJ_0){X3j-v!74$%(+m7ijf-nF)9d+N
zymud4qTXlQiMp*X3o%LC5nS@gsYMfs#2kNmi=#N8B3AwS4<_h?G}2^S^$;g?QFfPgZ?#=a#M_lR%y>ic`KT%}46%uf(?Nm7#2)Bz8_++y+2
zbIBpph|meWee#!gPMBh&=c-b(yv5-@bB@Tz&Inp6RU#UvuM
z`yo~FS8mpbhZJ@i1v+x2?xe@O>cs+8*!3*{r{s2d=M4c(VgvNmt1>^684LpXqfBDQ
zZ4XfG7fvc)37O;p-q4@-*YkEjFAUl*7Ah-D6-)$YXNP28a=9nm`N}RaNK1t7xuV2$
zc!QtkrPejok7lFJH^l)kU_7&+>j`oDC;h2`63<=6T|eN^q-tGRS3d6~ANF5%2=@Gk
zXe=>0%c~=J6_YjC@1#f(aWnYAp;(@COaCF3!0saC>{zC@62a_`_pM$c3J**V`b=_)
zwoYwS?VJu)JUEThh6PX_g}!%nNoDZT62u!v{x&;&Lh5qI{@dyUQRS6j0~yG^7KiH@KEzOy7HMsQ1GwpC3$qj3dBPy
zdwG%`Pbrh(;pSgHU?kKtl7yO<$F_dTRT`G^`p*X$f2uY~c(s$}m10bio$5$=Wn7Y2
zl7yApk!b|c{-2oksUpGuYZbUxVXsK~LhGDvU4A&c2MuCAy)G1lzw=d<-6
zEYH(h{_ne$Jg2N(d7-Y_@1W2hJgk{bXTJAMd$Z!$9|PNmcn%&3|z(Z89A&R;IVQ6AiL|y6d_`w5%qF8rS_wZ5Xnz*<
z|0WE)Sj|buPmLS^8th;6)|oBk4Yab7+`h{KZ={vTm;YM?BAk=QHZ1E+1`h_mWabmQ
zHxp9u2Mmpov}ZIj#8bFgU*Ru#Uo-d*esB_agYvwh2)(C~X7a*h1Ynrg{4*nQU~)qv
z${}51
z(ecWK=a#(%LgW#t7t~15I!n#eP_^XTMJll`+>X>IoicZBk@tsZOi^L1hkE-MiNkjv
zM#@#9i$^&&bV_n$X6R@kU$p)*
zlE+Xgpg3B1@(4)(Vvxx(hPS7UUmw}g(zibAvn;<6`fZ#pclA8M8K*W?8;6Od3x{M9B3KAeEKzkMo8D%FLT?*3;yWMQi6<4Oi
zo_9e_zz2cg!bc|1f{cRkPG;K;3Vkh(p#E!L1JGC>&Vk?r01du3FL7h4f=q#d0?5T0
zs@92vpXGGLCr2KR;e3i^w1Ny^VpQ%N+B5MHF+v<@abG_XEo1B3MP3Q8^-X{77vU$!
zqCJ5ZYwi4;Txra%loknt3Wo}KE*!KW2DE7*v>}6!n+LM6E5?PFnJOk(mE9%B%b(TM
zVZs>nb<5#$#1r*~@ijUqa8}JI7|cOZm7*>u;GfSCWw&()uK(Q9s)*6pCZ%vJ&2Z}<
zzSW~Y*14YK$eq-Hv&JIUUf2kQPwriB-lI?3rbZbGAyO^NL2ptXH%=EF!ySt6wXt;>
z-Qw$cY@w4u=bmqkN^*JZv4t_2b;*Uc-VH-VYgt$gsCm8CzgI;{F38l3h{1>VPm3O5
zStnNK7w9>=1*|~UcQ{`2#^*v`vLj4I9pfop@G=kN)yi}Kf|z1Ws${NEzd9JLUeqxN
z8>`WEq8fH3*^by=3ytlfjY`8B)xa{!s}3a)#{5qT)jG{oWU7pSne-&O&iKezoEn>e
zD_c}Fq@N{&@KT9ucCN(9DU$Y3{359h1$vO2lNis+JUjUny&=i+^3RXwu&R5=yjBtI1Lw&Y?lRVy4DN9!7GuPJP;`~}4%h++{D^)t5QG2QY_
zqhdlw8CBX-Wkvz9U7vjOWvrYVYuy@RJY;QXBVZ4!qW_foS5=W4gCgIAu=Tx5P}e}B
zTCFbQU4~Oj%%vI`dXSF0?wY*RmtbN7Fz;?56mAO|@1B7?y25#%2C>^U(DJ_h=^ooAsg
zH*L~Ev3=i;f<=<7Dr=LUP-|Pkv3uB5n
zns~3*IhJ3pV(b9g4v3PB}{YyXRZ
zyv%#_r!UmYG!mu#Y{)4|AAvBcFXQGqfKgvCv@S7Qxrd}C;JvamPr*-m*i*97)N&V`
zqCt)|f?#C+o{aGm(gDo#Ce1|CF#55GuRylZQvdLX6{X^P8MEd`fBI4D&QDRh3yCSH
zR!DHomBR`21u>(OcE-~k1G*hTv%<$&W%<@W`(NR&-!*YRPV?Bx&9JLoEB3IN=Zc6b
zdTw;VV1NLtcf&&S!!`H!sZswW#^bNYfB8;QA{><9sG&Pn1eU4so2O&wD;kwOu32j2
z+sSK}Y>Y-n%8!z*=dEQdyJjn*BS$$ogdzAFx|P@h
zdcQ7ogYkmt-klQesU(_8xxkX9lRFnM1+xP_3U0+EL`|m$O=5a-ls*nid&rtkd6rbOfL_ODT*_nAz8p?tReI
zF)r?@csk+y
zY+gr+x2%q4Zl^>V5#5fJhE+ye8XUKb@ZeSGJE;?g?4yK^P8a53b8dPRsg|M_E0y$&
z(aAM%0tUp}jpa@of6@u;r2v{A7~2fMiZQI%%2V9=SqECj{nWvm%C|knI(g0@!}pzM
z^^s%leKw+2(Rze0hoKugd>J;0%{9r!Ed)K7bu565V0PYjr(fFob((npTEW5C(=^bh
zaqBTRKy&QCjZ%%(%D6Xx9S+6s`2EH=F-}QL;o=NRRbqIOSnLLez#$rJ9n$No`U{l(
z_GPg#T5C;MD`WHwURVnwGBS-B)&CXD&~OPp&L)3pDlP<%5)O)x0zTTe=+kWXsX0j$
zU#c!5Z7p<6#5MOnUN};*LAT0sR~eGt|GYmrlEXkQYy$~&c*ppDs9H#P>)s|E$S~xP=wn_ZFKam>-u-3Z6%514ok|9H~LkrX~pphLpvn2HVS*SJQj~3#N%+W7|&CeO{A@$PSqrC_;D##eUv2FvyrII{||<<%#x&t
z3P|Y)CK$TBTAdoa^Cy6n8goC(R0y$LbB^CXsD&8V<<0Kylt$sQgjQYP_|h&wAxoTCb>wbNaZ)!
zz@^Af2#M6}Ui%Pp>D-tJ?t*~EXA(MHHG{!a7jE_X-L?|DfovGpYSmb85ZtC?fle?4
zFogEmtUb#BglU(fz`}F$yU*INU2>O8sSqQ@n8(lHY1zg8JhJPB?s8fPhQgL=*vjmo
z4pCz#8S)kkF_0?T9G`9ap*y-`7DTl@B+q5;%LT_Uro_RR7;zyQ(rD1p$$0b#BkJKB
z0SfR{GtH%E?0y6dUQL>UI`#Sf|j@Z@Z7dncR=kRIfF-vk^;WRRh9$A;iNRZT}#S
zYIX3yI=927D;HX7kcxq^f`#Me%p6$_f_7EL@uTpxT>7w(3kpQ%Aqq!Ury1*tg)R^B
zI3ghB+`Lvk7N6x%+zf)T!Wi=cb7DYzN?gC~tFz;^#-~Gk*EWtf8;dfLM4xs|MgH^o
zFC+Ryy<*0yxBj=R>Ait8HC}7V#UeEHH#yoq%Dg&jQ>jwq7)0Su`*f5%o(w9AsD8~z
zQ0X#hAD2|Ym5EG*W$)5lYhi(oPBwl2Q*do{bNqF4<&2f2X2Z*Sc;e#1Y~Ue^+h3<@
z(VmJAObJjvYQeR5S5gOjl|-dc*UAu-BkY*7DAoS%iEa=ZMHrOLW?Tek?$|I|QS+Y0
zAYBXekl*Ea_T-lXf|oH`M+kLyl*|Oxcqro6egpyEU(zVwm?na($<&(|e#Xmo@-x3{
zP!EzM{}30sos?w-Fnc=Tjro87e6mwh%tJdqn6(76evMzt-|?nsaew0SYAb3EyZUt4
zjPYuK&R}W4Grg+XsPi)Fy8HF(isH3OpMpl2@E0;OPiSbpAW$Ku4mrN_sKx+qT`8lj
zSPDvljhJ_IOKD3#b0P<(zgG5t7sP%hBJifeUT`jIbybFKe4eTk(RC=vsTAzNHnTgq
z=}n|QR#0219z-bU&yTwv58Os^hDnJKQ{Db}!29DE8{3)|C*(*5S>xuT(P2|R?uG`d
zgH9sa&i+o$od-zcywH^-;IUd@*=Cm~@~Q52N~
zQQmC)Zu|=K3sOu(7ZO1!(!j#L^P^|H0XZGUkZq#*Q);_1?YIMy*OTD&fiJbL^p81D
zY6uX$`NouS&p!15@kQsw+-tU26h~aad0J^B();fe#KhYWN1=kfiyYi@UWT_iWs)Aa
zM!tgS88$u7lWYYS*ftHG@MgtIqdZvW6ACLPgOZv2euUsMAMUDT5TA@NgwRRPT?pT^
z;N@caFQ@=fD}8*5Z*Nn(YD_if^E6@wb(#9Q$oz5!sE<1h30A2MjI7M}UV*BDo?-WeGNzq+4XM9^f%?
z&nJy-9D+6m8xQWNK5pO{oFL6J&z&Z~awyS4{fEfBAi`L|^{z1t+rYm2gol=xmr+$A
z1*!R54o(oSS?1p5f0!3T+^NKyg!sR8r4*8FoIHO#8FQCG+C)6r1>18m6r`Ubq>|UG
z@7%P*mnnk`nE%tH9ATnwP;o1&&;G$$p>w!N7>Z-+(kes$KGm}-5DTn}lT#Wj
z*pzUvj^!#zK#;$%l&9vMVMcyoBGhW)(RrsI{*zo>W;Fg}a=2)K^V?v4|ND5NxiR(4
z|Ndd_>(O?vQ*a35Y?d6KhlR}RRK8b4C(7}`I-T!#k!9|Df!Av4ku4q5MYSYn%p@=p
zy~i}|71-;spmJrQ5r8i)*2+WGB`;*wI-V6EWW@N@E@gcpSprzKx%!VMjdM)SU}ZAM
z2)(LgW2E))jwLd%mFwlJ`^
zyI|Nm-nDmnDv|OE2o%+`5;s+X7{5)6PG#ilfxW!5m|;Z`p!K3z%J%8e5ta_Npx`yB
zx~1|Y-gWvf3y=`nQ`eLKDisqG;}_#
z;yC;*HqQP~sy6?xr03qhyehDWm^3;rKa0ziX-P{OY4
zK46$$jxrH*S3S@=+Q$OyfPZuEVbgPmmQ=W<0WFBkh%O+@#a
z{0wi9)aAL(j#Af_6zZK!Is_d}28mae2_am2@A(9Tr{fnV(>ew@(pm&_2qUc;R1kEc
zlWoBlX7Jj9`%d_Cv|;{@5uk2}U!(JKx0MJ;@#*nuF@%BGa#ySuTDoOD{78Gt>%_O`
zT>2Al{_!&&FzUB@yGQTzwO1JYS@jr;_
z7xMu6v493YAs?%~s;=_R^h+ji7Im)N8Nak)Duyf-g8dl9g1Fs1P#=`X9?9y0!oS
literal 0
HcmV?d00001
diff --git a/docs/_navbar.md b/docs/_navbar.md
new file mode 100644
index 0000000..2dda493
--- /dev/null
+++ b/docs/_navbar.md
@@ -0,0 +1,3 @@
+- [Home](/)
+- [Doc](https://orange-cyberdefense.github.io/ctf-party/yard/)
+- [Source](https://github.com/Orange-Cyberdefense/ctf-rabid/)
diff --git a/docs/_sidebar.md b/docs/_sidebar.md
new file mode 100644
index 0000000..847bc8f
--- /dev/null
+++ b/docs/_sidebar.md
@@ -0,0 +1,13 @@
+- Getting started
+
+ - [Quick start](pages/quick-start.md)
+ - [Installation](pages/install.md)
+ - [Usage](pages/usage.md)
+
+- Guide
+
+ - [Documentation](pages/documentation.md)
+ - [Publishing](pages/publishing.md)
+
+- [About](About.md)
+- [Changelog](CHANGELOG.md)
diff --git a/docs/index.html b/docs/index.html
new file mode 100644
index 0000000..186f8a1
--- /dev/null
+++ b/docs/index.html
@@ -0,0 +1,31 @@
+
+
+
+
+ Document
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/pages/documentation.md b/docs/pages/documentation.md
new file mode 100644
index 0000000..f4ba1cc
--- /dev/null
+++ b/docs/pages/documentation.md
@@ -0,0 +1,30 @@
+# Documentation
+
+## Server locally
+
+```
+$ npm i docsify-cli -g
+$ docsify serve docs
+```
+
+## Library doc
+
+The output directory of the library documentation will be `docs/yard`.
+
+You can consult it online [here](https://orange-cyberdefense.github.io/ctf-party/yard/).
+
+### Building locally: for library users
+
+For developers who only want to use the library.
+
+```
+$ bundle exec yard doc
+```
+
+### Building locally: for developer
+
+For developers who want to participate to the development.
+
+```
+$ bundle exec yard doc --yardopts .yardopts-dev
+```
diff --git a/docs/pages/install.md b/docs/pages/install.md
new file mode 100644
index 0000000..f5faa4d
--- /dev/null
+++ b/docs/pages/install.md
@@ -0,0 +1,84 @@
+# Installation
+
+## Production
+
+### Install from rubygems.org
+
+```
+$ gem install ctf-party
+```
+
+Gem: [ctf-party](https://rubygems.org/gems/ctf-party)
+
+### Install from BlackArch
+
+From the repository:
+
+```
+# pacman -S ruby-ctf-party
+```
+
+From git:
+
+```
+# blackman -i ruby-ctf-party
+```
+
+PKGBUILD: [ruby-ctf-party](https://github.com/BlackArch/blackarch/blob/master/packages/ruby-ctf-party/PKGBUILD)
+
+### Install from ArchLinux
+
+Manually:
+
+```
+$ git clone https://aur.archlinux.org/ruby-ctf-party.git
+$ cd ruby-ctf-rabid
+$ makepkg -sic
+```
+
+With an AUR helper ([Pacman wrappers](https://wiki.archlinux.org/index.php/AUR_helpers#Pacman_wrappers)), eg. pikaur:
+
+```
+$ pikaur -S ruby-ctf-rabid
+```
+
+AUR: [ruby-ctf-rabid](https://aur.archlinux.org/packages/ruby-ctf-rabid/)
+
+## Development
+
+It's better to use [rbenv](https://github.com/rbenv/rbenv) to have latests version of ruby and to avoid trashing your system ruby.
+
+### Install from rubygems.org
+
+```
+$ gem install --development ctf-party
+```
+
+### Build from git
+
+Just replace `x.x.x` with the gem version you see after `gem build`.
+
+```
+$ git clone https://github.com/Orange-Cyberdefense/ctf-party.git rabid
+$ cd ctf-party
+$ gem install bundler
+$ bundler install
+$ gem build ctf_party.gemspec
+$ gem install ctf-party-x.x.x.gem
+```
+
+Note: if an automatic install is needed you can get the version with `$ gem build ctf_party.gemspec | grep Version | cut -d' ' -f4`.
+
+### Run the library in irb without installing the gem
+
+From local file:
+
+```
+$ irb -Ilib -rctf_party
+```
+
+From the installed gem:
+
+```
+$ ctf_party_console
+```
diff --git a/docs/pages/publishing.md b/docs/pages/publishing.md
new file mode 100644
index 0000000..234b193
--- /dev/null
+++ b/docs/pages/publishing.md
@@ -0,0 +1,39 @@
+# Publishing
+
+## On Rubygems.org
+
+```
+$ git tag -a vx.x.x
+$ git push --follow-tags
+$ gem push ctf-party-x.x.x.gem
+```
+
+See https://guides.rubygems.org/publishing/.
+
+On new release don't forget to rebuild the library documentation:
+
+```
+$ bundle exec yard doc
+```
+
+An to be sure all tests pass!
+
+```
+$ rake test
+```
+
+## On BlackArch
+
+BA process
+
+On new release don't forget to rebuild the library documentation:
+
+```
+$ bundle exec yard doc
+```
+
+An to be sure all tests pass!
+
+```
+$ rake test
+```
diff --git a/docs/pages/quick-start.md b/docs/pages/quick-start.md
new file mode 100644
index 0000000..b40331b
--- /dev/null
+++ b/docs/pages/quick-start.md
@@ -0,0 +1,23 @@
+
+## Quick install
+
+```
+$ gem install ctf-party
+```
+
+## Library
+
+```ruby
+require 'ctf_party'
+
+'string'.to_b64
+```
+
+## Console
+
+Launch `irb` with the library loaded.
+
+```
+$ ctf_party_console
+irb(main):001:0>
+```
diff --git a/docs/pages/usage.md b/docs/pages/usage.md
new file mode 100644
index 0000000..a178a29
--- /dev/null
+++ b/docs/pages/usage.md
@@ -0,0 +1,61 @@
+# Usage
+
+## Examples of usage
+
+For base64 encoding instead of writting:
+
+```ruby
+require 'base64'
+
+myvar = 'string'
+myvar = Base64.strict_encode64(myvar)
+```
+
+Just write (shorter and easier to remember):
+
+```ruby
+require 'ctf_party'
+
+myvar = 'string'
+myvar.to_b64!
+```
+
+For base64 verification instead of writting:
+
+```ruby
+reg = %r{\A(?:[a-zA-Z0-9+/]{4})*(?:|(?:[a-zA-Z0-9+/]{3}=)|
+ (?:[a-zA-Z0-9+/]{2}==)|(?:[a-zA-Z0-9+/]{1}===))\Z}xn
+reg.match?('SGVsbG8gd29ybGQh')
+```
+
+Just write:
+
+```ruby
+'SGVsbG8gd29ybGQh'.b64?
+```
+
+For hash/digest instead of writting:
+
+```ruby
+Digest::SHA2.new(512).hexdigest('mystr')
+```
+
+Just write:
+
+```ruby
+'mystr'.sha2_512
+```
+
+For rot/rot13/ceasar cipher simply use:
+
+```ruby
+'mystr'.rot13
+'mystr'.rot(shift: 11)
+```
+
+For generating a flag respecting a flag format:
+
+```ruby
+String.flag = {prefix: 'sigsegv', digest: 'md5'}
+'this_1s_a_fl4g'.flag # => "sigsegv{a5bec9e2a86b6b70d288451eb38dfec8}"
+```
diff --git a/docs/vendor/docsify.js b/docs/vendor/docsify.js
new file mode 100644
index 0000000..8f2ba0d
--- /dev/null
+++ b/docs/vendor/docsify.js
@@ -0,0 +1 @@
+!function(){function s(n){var r=Object.create(null);return function(e){var t=c(e)?e:JSON.stringify(e);return r[t]||(r[t]=n(e))}}var o=s(function(e){return e.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()})}),l=Object.prototype.hasOwnProperty,d=Object.assign||function(e){for(var t=arguments,n=1;n=a.length)i(r);else if("function"==typeof e)if(2===e.length)e(r,function(e){r=e,o(t+1)});else{var n=e(r);r=void 0===n?r:n,o(t+1)}else o(t+1)};o(0)}var f=!0,m=f&&document.body.clientWidth<=600,g=f&&window.history&&window.history.pushState&&window.history.replaceState&&!navigator.userAgent.match(/((iPod|iPhone|iPad).+\bOS\s+[1-4]\D|WebApps\/.+CFNetwork)/),n={};function v(e,t){if(void 0===t&&(t=!1),"string"==typeof e){if(void 0!==window.Vue)return x(e);e=t?x(e):n[e]||(n[e]=x(e))}return e}var b=f&&document,y=f&&b.body,k=f&&b.head;function x(e,t){return t?e.querySelector(t):b.querySelector(e)}function w(e,t){return[].slice.call(t?e.querySelectorAll(t):b.querySelectorAll(e))}function _(e,t){return e=b.createElement(e),t&&(e.innerHTML=t),e}function S(e,t){return e.appendChild(t)}function A(e,t){return e.insertBefore(t,e.children[0])}function C(e,t,n){u(t)?window.addEventListener(e,t):e.addEventListener(t,n)}function E(e,t,n){u(t)?window.removeEventListener(e,t):e.removeEventListener(t,n)}function $(e,t,n){e&&e.classList[n?t:"toggle"](n||t)}var L,T,e=Object.freeze({getNode:v,$:b,body:y,head:k,find:x,findAll:w,create:_,appendTo:S,before:A,on:C,off:E,toggleClass:$,style:function(e){S(k,_("style",e))}});function R(e,t){if(void 0===t&&(t=''),!e||!e.length)return"";var n="";return e.forEach(function(e){n+=''+e.title+" ",e.children&&(n+=R(e.children,t))}),t.replace("{inner}",n)}function r(e,t){return''+t.slice(5).trim()+"
"}function P(e){var t,n,r=e.loaded,i=e.total,a=e.step;!L&&((n=_("div")).classList.add("progress"),S(y,n),L=n),t=a?80<(t=parseInt(L.style.width||0,10)+a)?80:t:Math.floor(r/i*100),L.style.opacity=1,L.style.width=95<=t?"100%":t+"%",95<=t&&(clearTimeout(T),T=setTimeout(function(e){L.style.opacity=0,L.style.width="0%"},200))}var O={};function F(a,e,t){void 0===e&&(e=!1),void 0===t&&(t={});var o=new XMLHttpRequest,n=function(){o.addEventListener.apply(o,arguments)},r=O[a];if(r)return{then:function(e){return e(r.content,r.opt)},abort:p};for(var i in o.open("GET",a),t)l.call(t,i)&&o.setRequestHeader(i,t[i]);return o.send(),{then:function(r,i){if(void 0===i&&(i=p),e){var t=setInterval(function(e){return P({step:Math.floor(5*Math.random()+1)})},500);n("progress",P),n("loadend",function(e){P(e),clearInterval(t)})}n("error",i),n("load",function(e){var t=e.target;if(400<=t.status)i(t);else{var n=O[a]={content:t.response,opt:{updatedAt:o.getResponseHeader("last-modified")}};r(n.content,n.opt)}})},abort:function(e){return 4!==o.readyState&&o.abort()}}}function j(e,t){e.innerHTML=e.innerHTML.replace(/var\(\s*--theme-color.*?\)/g,t)}var N=/([^{]*?)\w(?=\})/g,z={YYYY:"getFullYear",YY:"getYear",MM:function(e){return e.getMonth()+1},DD:"getDate",HH:"getHours",mm:"getMinutes",ss:"getSeconds"};var t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function i(e,t){return e(t={exports:{}},t.exports),t.exports}var M=i(function(m,e){!function(e){var y={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:d,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,nptable:d,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?\\?>\\n*|\\n*|\\n*|?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=\\h*\\n)[\\s\\S]*?(?:\\n{2,}|$)|(?!script|pre|style)[a-z][\\w-]*\\s*>(?=\\h*\\n)[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *([^\s>]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,table:d,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading| {0,3}>|<\/?(?:tag)(?: +|\n|\/?>)|<(?:script|pre|style|!--))[^\n]+)*)/,text:/^[^\n]+/};function l(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||f.defaults,this.rules=y.normal,this.options.pedantic?this.rules=y.pedantic:this.options.gfm&&(this.options.tables?this.rules=y.tables:this.rules=y.gfm)}y._label=/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,y._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/,y.def=t(y.def).replace("label",y._label).replace("title",y._title).getRegex(),y.bullet=/(?:[*+-]|\d+\.)/,y.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/,y.item=t(y.item,"gm").replace(/bull/g,y.bullet).getRegex(),y.list=t(y.list).replace(/bull/g,y.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+y.def.source+")").getRegex(),y._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",y._comment=//,y.html=t(y.html,"i").replace("comment",y._comment).replace("tag",y._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),y.paragraph=t(y.paragraph).replace("hr",y.hr).replace("heading",y.heading).replace("lheading",y.lheading).replace("tag",y._tag).getRegex(),y.blockquote=t(y.blockquote).replace("paragraph",y.paragraph).getRegex(),y.normal=g({},y),y.gfm=g({},y.normal,{fences:/^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\n? *\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/}),y.gfm.paragraph=t(y.paragraph).replace("(?!","(?!"+y.gfm.fences.source.replace("\\1","\\2")+"|"+y.list.source.replace("\\1","\\3")+"|").getRegex(),y.tables=g({},y.gfm,{nptable:/^ *([^|\n ].*\|.*)\n *([-:]+ *\|[-| :]*)(?:\n((?:.*[^>\n ].*(?:\n|$))*)\n*|$)/,table:/^ *\|(.+)\n *\|?( *[-:]+[-| :]*)(?:\n((?: *[^>\n ].*(?:\n|$))*)\n*|$)/}),y.pedantic=g({},y.normal,{html:t("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?\\1> *(?:\\n{2,}|\\s*$)| \\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",y._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/}),l.rules=y,l.lex=function(e,t){return new l(t).lex(e)},l.prototype.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n"),this.token(e,!0)},l.prototype.token=function(e,t){var n,r,i,a,o,s,l,c,u,p,h,d,g,f,m,v,b=this;for(e=e.replace(/^ +$/gm,"");e;)if((i=b.rules.newline.exec(e))&&(e=e.substring(i[0].length),1 ?/gm,""),b.token(i,t),b.tokens.push({type:"blockquote_end"});else if(i=b.rules.list.exec(e)){for(e=e.substring(i[0].length),l={type:"list_start",ordered:f=1<(a=i[2]).length,start:f?+a:"",loose:!1},b.tokens.push(l),n=!(c=[]),g=(i=i[0].match(b.rules.item)).length,h=0;h?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:d,tag:"^comment|^[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(href(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,strong:/^__([^\s])__(?!_)|^\*\*([^\s])\*\*(?!\*)|^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)/,em:/^_([^\s_])_(?!_)|^\*([^\s*"<\[])\*(?!\*)|^_([^\s][\s\S]*?[^\s_])_(?!_)|^_([^\s_][\s\S]*?[^\s])_(?!_)|^\*([^\s"<\[][\s\S]*?[^\s*])\*(?!\*)|^\*([^\s*"<\[][\s\S]*?[^\s])\*(?!\*)/,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:d,text:/^(`+|[^`])[\s\S]*?(?=[\\?@\[\]\\^_`{|}~])/g,n._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,n._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,n.autolink=t(n.autolink).replace("scheme",n._scheme).replace("email",n._email).getRegex(),n._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,n.tag=t(n.tag).replace("comment",y._comment).replace("attribute",n._attribute).getRegex(),n._label=/(?:\[[^\[\]]*\]|\\[\[\]]?|`[^`]*`|[^\[\]\\])*?/,n._href=/\s*(<(?:\\[<>]?|[^\s<>\\])*>|(?:\\[()]?|\([^\s\x00-\x1f\\]*\)|[^\s\x00-\x1f()\\])*?)/,n._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,n.link=t(n.link).replace("label",n._label).replace("href",n._href).replace("title",n._title).getRegex(),n.reflink=t(n.reflink).replace("label",n._label).getRegex(),n.normal=g({},n),n.pedantic=g({},n.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/,link:t(/^!?\[(label)\]\((.*?)\)/).replace("label",n._label).getRegex(),reflink:t(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",n._label).getRegex()}),n.gfm=g({},n.normal,{escape:t(n.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~+(?=\S)([\s\S]*?\S)~+/,text:t(n.text).replace("]|","~]|").replace("|$","|https?://|ftp://|www\\.|[a-zA-Z0-9.!#$%&'*+/=?^_`{\\|}~-]+@|$").getRegex()}),n.gfm.url=t(n.gfm.url).replace("email",n.gfm._extended_email).getRegex(),n.breaks=g({},n.gfm,{br:t(n.br).replace("{2,}","*").getRegex(),text:t(n.gfm.text).replace("{2,}","*").getRegex()}),c.rules=n,c.output=function(e,t,n){return new c(t,n).output(e)},c.prototype.output=function(e){for(var t,n,r,i,a,o,s=this,l="";e;)if(a=s.rules.escape.exec(e))e=e.substring(a[0].length),l+=a[1];else if(a=s.rules.autolink.exec(e))e=e.substring(a[0].length),r="@"===a[2]?"mailto:"+(n=p(s.mangle(a[1]))):n=p(a[1]),l+=s.renderer.link(r,null,n);else if(s.inLink||!(a=s.rules.url.exec(e))){if(a=s.rules.tag.exec(e))!s.inLink&&/^/i.test(a[0])&&(s.inLink=!1),!s.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(a[0])?s.inRawBlock=!0:s.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(a[0])&&(s.inRawBlock=!1),e=e.substring(a[0].length),l+=s.options.sanitize?s.options.sanitizer?s.options.sanitizer(a[0]):p(a[0]):a[0];else if(a=s.rules.link.exec(e))e=e.substring(a[0].length),s.inLink=!0,r=a[2],i=s.options.pedantic?(t=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(r))?(r=t[1],t[3]):"":a[3]?a[3].slice(1,-1):"",r=r.trim().replace(/^<([\s\S]*)>$/,"$1"),l+=s.outputLink(a,{href:c.escapes(r),title:c.escapes(i)}),s.inLink=!1;else if((a=s.rules.reflink.exec(e))||(a=s.rules.nolink.exec(e))){if(e=e.substring(a[0].length),t=(a[2]||a[1]).replace(/\s+/g," "),!(t=s.links[t.toLowerCase()])||!t.href){l+=a[0].charAt(0),e=a[0].substring(1)+e;continue}s.inLink=!0,l+=s.outputLink(a,t),s.inLink=!1}else if(a=s.rules.strong.exec(e))e=e.substring(a[0].length),l+=s.renderer.strong(s.output(a[4]||a[3]||a[2]||a[1]));else if(a=s.rules.em.exec(e))e=e.substring(a[0].length),l+=s.renderer.em(s.output(a[6]||a[5]||a[4]||a[3]||a[2]||a[1]));else if(a=s.rules.code.exec(e))e=e.substring(a[0].length),l+=s.renderer.codespan(p(a[2].trim(),!0));else if(a=s.rules.br.exec(e))e=e.substring(a[0].length),l+=s.renderer.br();else if(a=s.rules.del.exec(e))e=e.substring(a[0].length),l+=s.renderer.del(s.output(a[1]));else if(a=s.rules.text.exec(e))e=e.substring(a[0].length),s.inRawBlock?l+=s.renderer.text(a[0]):l+=s.renderer.text(p(s.smartypants(a[0])));else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0))}else{if("@"===a[2])r="mailto:"+(n=p(a[0]));else{for(;o=a[0],a[0]=s.rules._backpedal.exec(a[0])[0],o!==a[0];);n=p(a[0]),r="www."===a[1]?"http://"+n:n}e=e.substring(a[0].length),l+=s.renderer.link(r,null,n)}return l},c.escapes=function(e){return e?e.replace(c.rules._escapes,"$1"):e},c.prototype.outputLink=function(e,t){var n=t.href,r=t.title?p(t.title):null;return"!"!==e[0].charAt(0)?this.renderer.link(n,r,this.output(e[1])):this.renderer.image(n,r,p(e[1]))},c.prototype.smartypants=function(e){return this.options.smartypants?e.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…"):e},c.prototype.mangle=function(e){if(!this.options.mangle)return e;for(var t,n="",r=e.length,i=0;i'+(n?e:p(e,!0))+"
\n":""+(n?e:p(e,!0))+"
"},r.prototype.blockquote=function(e){return"\n"+e+" \n"},r.prototype.html=function(e){return e},r.prototype.heading=function(e,t,n){return this.options.headerIds?"\n":""+e+" \n"},r.prototype.hr=function(){return this.options.xhtml?" \n":" \n"},r.prototype.list=function(e,t,n){var r=t?"ol":"ul";return"<"+r+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+""+r+">\n"},r.prototype.listitem=function(e){return""+e+" \n"},r.prototype.checkbox=function(e){return" "},r.prototype.paragraph=function(e){return""+e+"
\n"},r.prototype.table=function(e,t){return t&&(t=""+t+" "),"\n"},r.prototype.tablerow=function(e){return"\n"+e+" \n"},r.prototype.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' align="'+t.align+'">':"<"+n+">")+e+""+n+">\n"},r.prototype.strong=function(e){return""+e+" "},r.prototype.em=function(e){return""+e+" "},r.prototype.codespan=function(e){return""+e+"
"},r.prototype.br=function(){return this.options.xhtml?" ":" "},r.prototype.del=function(e){return""+e+""},r.prototype.link=function(e,t,n){if(this.options.sanitize){try{var r=decodeURIComponent(h(e)).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return n}if(0===r.indexOf("javascript:")||0===r.indexOf("vbscript:")||0===r.indexOf("data:"))return n}this.options.baseUrl&&!s.test(e)&&(e=a(this.options.baseUrl,e));try{e=encodeURI(e).replace(/%25/g,"%")}catch(e){return n}var i='"+n+" "},r.prototype.image=function(e,t,n){this.options.baseUrl&&!s.test(e)&&(e=a(this.options.baseUrl,e));var r=' ":">"},r.prototype.text=function(e){return e},i.prototype.strong=i.prototype.em=i.prototype.codespan=i.prototype.del=i.prototype.text=function(e){return e},i.prototype.link=i.prototype.image=function(e,t,n){return""+n},i.prototype.br=function(){return""},u.parse=function(e,t){return new u(t).parse(e)},u.prototype.parse=function(e){this.inline=new c(e.links,this.options),this.inlineText=new c(e.links,g({},this.options,{renderer:new i})),this.tokens=e.reverse();for(var t="";this.next();)t+=this.tok();return t},u.prototype.next=function(){return this.token=this.tokens.pop()},u.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},u.prototype.parseText=function(){for(var e=this.token.text;"text"===this.peek().type;)e+="\n"+this.next().text;return this.inline.output(e)},u.prototype.tok=function(){var e=this;switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,h(this.inlineText.output(this.token.text)));case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":var t,n,r,i,a="",o="";for(r="",t=0;t"']/,p.escapeReplace=/[&<>"']/g,p.replacements={"&":"&","<":"<",">":">",'"':""","'":"'"},p.escapeTestNoEncode=/[<>"']|&(?!#?\w+;)/,p.escapeReplaceNoEncode=/[<>"']|&(?!#?\w+;)/g;var o={},s=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function d(){}function g(e){for(var t,n,r=arguments,i=1;it)n.splice(t);else for(;n.lengthAn error occurred:
"+p(e.message+"",!0)+" ";throw e}}d.exec=d,f.options=f.setOptions=function(e){return g(f.defaults,e),f},f.getDefaults=function(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:new r,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tables:!0,xhtml:!1}},f.defaults=f.getDefaults(),f.Parser=u,f.parser=u.parse,f.Renderer=r,f.TextRenderer=i,f.Lexer=l,f.lexer=l.lex,f.InlineLexer=c,f.inlineLexer=c.output,f.parse=f,m.exports=f}(t||"undefined"!=typeof window&&window)}),a=i(function(e){var c="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},u=function(){var l=/\blang(?:uage)?-([\w-]+)\b/i,t=0,P=c.Prism={manual:c.Prism&&c.Prism.manual,disableWorkerMessageHandler:c.Prism&&c.Prism.disableWorkerMessageHandler,util:{encode:function(e){return e instanceof o?new o(e.type,P.util.encode(e.content),e.alias):"Array"===P.util.type(e)?e.map(P.util.encode):e.replace(/&/g,"&").replace(/e.length)return;if(!(k instanceof s)){if(g&&b!=t.length-1){if(p.lastIndex=y,!(C=p.exec(e)))break;for(var x=C.index+(d?C[1].length:0),w=C.index+C[0].length,_=b,S=y,A=t.length;_"+r.content+""+r.tag+">"},!c.document)return c.addEventListener&&(P.disableWorkerMessageHandler||c.addEventListener("message",function(e){var t=JSON.parse(e.data),n=t.language,r=t.code,i=t.immediateClose;c.postMessage(P.highlight(r,P.languages[n],n)),i&&c.close()},!1)),c.Prism;var e=document.currentScript||[].slice.call(document.getElementsByTagName("script")).pop();return e&&(P.filename=e.src,P.manual||e.hasAttribute("data-manual")||("loading"!==document.readyState?window.requestAnimationFrame?window.requestAnimationFrame(P.highlightAll):window.setTimeout(P.highlightAll,16):document.addEventListener("DOMContentLoaded",P.highlightAll))),c.Prism}();e.exports&&(e.exports=u),void 0!==t&&(t.Prism=u),u.languages.markup={comment://,prolog:/<\?[\s\S]+?\?>/,doctype://i,cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/i,inside:{punctuation:[/^=/,{pattern:/(^|[^\\])["']/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/?[\da-z]{1,8};/i},u.languages.markup.tag.inside["attr-value"].inside.entity=u.languages.markup.entity,u.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))}),u.languages.xml=u.languages.markup,u.languages.html=u.languages.markup,u.languages.mathml=u.languages.markup,u.languages.svg=u.languages.markup,u.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(?:;|(?=\s*\{))/i,inside:{rule:/@[\w-]+/}},url:/url\((?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,selector:/[^{}\s][^{};]*?(?=\s*\{)/,string:{pattern:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},property:/[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,important:/\B!important\b/i,function:/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:]/},u.languages.css.atrule.inside.rest=u.languages.css,u.languages.markup&&(u.languages.insertBefore("markup","tag",{style:{pattern:/(")).firstElementChild),function(n){if(!(window.CSS&&window.CSS.supports&&window.CSS.supports("(--v:red)"))){var e=w("style:not(.inserted),link");[].forEach.call(e,function(e){if("STYLE"===e.nodeName)j(e,n);else if("LINK"===e.nodeName){var t=e.getAttribute("href");if(!/\.css$/.test(t))return;F(t).then(function(e){var t=_("style",e);k.appendChild(t),j(t,n)})}})}}(t.themeColor)),e._updateRender(),$(y,"ready")}var Ae={};var Ce=function(e){this.config=e};function Ee(e){var t=location.href.indexOf("#");location.replace(location.href.slice(0,0<=t?t:0)+"#"+e)}Ce.prototype.getBasePath=function(){return this.config.basePath},Ce.prototype.getFile=function(e,t){void 0===e&&(e=this.getCurrentPath());var n,r,i=this.config,a=this.getBasePath(),o="string"==typeof i.ext?i.ext:".md";return e=i.alias?function e(t,n,r){var i=Object.keys(n).filter(function(e){return(Ae[e]||(Ae[e]=new RegExp("^"+e+"$"))).test(t)&&t!==r})[0];return i?e(t.replace(Ae[i],n[i]),n,t):t}(e,i.alias):e,n=e,r=o,e=(e=new RegExp("\\.("+r.replace(/^\./,"")+"|html)$","g").test(n)?n:/\/$/g.test(n)?n+"README"+r:""+n+r)==="/README"+o&&i.homepage||e,e=X(e)?e:K(a,e),t&&(e=e.replace(new RegExp("^"+a),"")),e},Ce.prototype.onchange=function(e){void 0===e&&(e=p),e()},Ce.prototype.getCurrentPath=function(){},Ce.prototype.normalize=function(){},Ce.prototype.parse=function(){},Ce.prototype.toURL=function(e,t,n){var r=n&&"#"===e[0],i=this.parse(ee(e));if(i.query=d({},i.query,t),e=(e=i.path+G(i.query)).replace(/\.md(\?)|\.md$/,"$1"),r){var a=n.indexOf("?");e=(0 ([^<]*?)