From 84be5db93c5c7669accdba16d2cd65ff25cca0dc Mon Sep 17 00:00:00 2001 From: Halliax Date: Tue, 17 Oct 2017 22:04:58 -0400 Subject: [PATCH 1/2] HW4 submission --- decoders.v | 10 +- deliverable_6.txt | 1 + hw4_deliverable1.jpg | Bin 0 -> 127457 bytes mux32to1by1.v | 12 + mux32to1by32.v | 47 ++ regfile.out | 1200 ++++++++++++++++++++++++++++++++++++++++++ regfile.t.v | 149 +++++- regfile.v | 54 +- register.v | 18 +- register32.v | 18 + register32zero.v | 16 + 11 files changed, 1482 insertions(+), 43 deletions(-) create mode 100644 deliverable_6.txt create mode 100644 hw4_deliverable1.jpg create mode 100644 mux32to1by1.v create mode 100644 mux32to1by32.v create mode 100755 regfile.out create mode 100644 register32.v create mode 100644 register32zero.v diff --git a/decoders.v b/decoders.v index dd467c2..bd759c9 100644 --- a/decoders.v +++ b/decoders.v @@ -1,14 +1,14 @@ // 32 bit decoder with enable signal // enable=0: all output bits are 0 // enable=1: out[address] is 1, all other outputs are 0 +/* Verilator lint_off WIDTH */ module decoder1to32 ( -output[31:0] out, -input enable, -input[4:0] address +output[31:0] out, +input enable, +input[4:0] address ); - assign out = enable<LNp@Y(U zhX4s6y@yWdynN?;=bi7q-~GMc@7;UeJNLeOhdq0*nLV>+tu=e^`7^U7r^Bbe09Vvi z)l>mgQ~&@Ko#bo8gEW{)vMdifAW#vTwmjD2qp-6G&FYW2b$x^64+7=TP{k{Hq zz}Y|Kr^p3hr=tFg%-1Ojar{AZQ|Q}&lsQ8wLv`k_Qu0&s&-_7Se>VjsJfcKO_W!(| z{%bZQ08{|fXV0BGcb1xRqNb)kPjiWuh7uSqUZlIk$Z+*4BLgEN({)Z3rfclXjEt;2 ztn6G|Kp>Ebp|Bu7z4*(-AMb@upscr(! zFjAdmq&jT?aQ<$uvsAzL`QO4h>N980Q_;{;?t-rX&QP7B*x<~0>I=VjHN_rh0q3Y0 zub$^&61)HOro}a8ao1O$uk)rB{-n9ZFQN0y(&|n0x1!?SzWzxHgKK|g{MQD4&t?2m zbARNH0xq4Uh{AZ55da1p$Lh&F-ex`eFakm;d)rp&4DHT6$*K0fxZ!(v0hbN^Rp{v? zS9hdK&}Is3dm6U-wZT&=bK7;la7#98=M*61f1vlqd|8B@X;tv5z?yME6psbBnpmGn zL#&&C9#NODl zsYFY&tB<%Go(~3nE-li3OLdOs=LYNd7nTHow&N~WZSnm;b)8p#K9s34ZYv5>0Y1^K zD0%87G;{}h!#y1%QB4}pe_aa&#tJzH{KUs*XtWu3dtMc)CK$KmKKcwZ01ZSCHbLat z*iyR)F?<>$^Se$n!QP}mK|X7PCtBr>>QQ+PFQruvpSZ8RY3&~T-1w>EVPLpFhI_(u8L=E&=kGGjUVcFbg%_* z8@CPQh(m1G{6-J6KbQuNn*>(u9O_Nt}cn@>mUdAu6C)KpbcTnm8Q zGn;=hz*u1|c>V>nYy)#Ra4-iy)boduky7^O?vx1_s?;@wBG%ACf zC)1kUC9Zg=$X@F1#0cLFW&_CJu%V0+Ro|l zVfEW;W01{*Q@~lHfyc@6?E+`&0|D_;FMeF-g}gUcS!oE8yc!b|8~N$}4vmKZ*1+gj zp}x<;#xANBf>VHT6Myo|AK@fa>X50{EmYV?mL*ij^4jFkU}u;d>5;^q_Ww9GPU8 zL(P}MV=AmlC+r|BG?}zI6UqM|Msb?&3Tr@f618Wh>W=%wGc%R5OmUY4S@oN`wKH3_;)D0G zo3!9S>Trv5h1yr!FTLk;kj@P+fVAMj!Qo5q-NZZX2SghkR$e{#7ybE+;p2lV#P<_{ zpJb}NdW#lwZ3gzB4&I13U8z`Htc;@UigZ^Fe{ZBoJqT-%T=32&Mw_kv)S zfrB|BvBj<1UOKYr+=}}C@mGHoxtWG97p|^WEXI$Y_wsrxZDS_bNX6&RwEA?DwH?}F z@?|QMl^e{kW2}?2qVPn2$24{QR@b8YqqU8@mDBq>=h0jR_C1{DBy${b2%(= zdOFeC?K7x_sU>x~#|w}Ygemo-OOjL(zW?LUV9T4_d-3S*Xc|oLdGqKo_e2V}GcSu< zN5_iMdjVo(V0E_Undpq)k2EWe2bG>qxF^k}|%$JBOZs_uRVKefOJ;Y?d);Vs9|mjLT$E zj7!vn@vq#x%m%aEbpoH$*#|+lo-hOjO=W?j+7S`*eWZF`n@_f>WrF zW+S$;q`*j;4C-m*VuQ^QwstAcbnx0`p>92hH&;v>;iJs^43yH@fPq)veEopx)n9dz zOTOwv|9-rW>ungr+{j4vJeTCnt5Q2|A6VQhROP0;v{CU^RTq0BqJeSoNwJ~7L+MLl z%Ori4Ic8QsbH6`L%R;za(c%i|EzM>7ca3!x#aLwh`-`Y4nOX_revfv>o!|a;+|Qpf z{PkKb)AP}^PFHj5ZyfyP37omZ?Z=j4efQy!l|-h!??j`$P=lvLhj0gn%i&8HiP&Ak z6^Bxp_WqEIHcyRWQ-ur7G{^@+qekCww!Z2q?5g!W|5iwy= z5r87t$Hf9>Z{>00g_RB533PL zCRpi)qK~|fql=@Jhs6yaM+YZ&c^}Ztzc81l(7$Jk+`RFZA|Cdjn}(WCZm2lBS>2El zmJ$}dNvZ8-X)UkwK=qHhloaT1LVA093wuilJGHtRN(j08I(b<5 z2syd){*A)}D|eV1+{FX#>~!OIjutPRJv~4-Z;DV_5c#8t-^u?etI~}dH~y}#l@mot zZ;Cb)02Tr`d*)vR+P|h~XwLsZ{hmI5o)Uk*UZ6ftOG`&bcZT}n~_`L@0|8e*Wf}^&)L;u2FCt^Gyp1ic94cmylJ~c^z4IoljCl_t^_KcMtD3 zQQr!Sic7GiKkHf8q+}lG!92Y}LZj1IZ%OML7+S`lVjFt<2lyXay-mk8_6-hAszQ7+ z)&(9}hh;Wx+_pha&HmeAAoeey{jUJ=|I2eQ*E_$7VTLJm!YQDA;OPM;X5~+M20cAc ztc?l!dUifdFh~=%!}DdW8A+LdVf6q>L%+W-K~yn5)} zD~qa$MLP!*Cxt;T|Ci#wC(rJo=MI3dseo909rJ-y$@Mf=V-v5c-fd-W?iq6zhBhO+ zc6}vLlAq80quyd%=>hW{tDs+JXKGLf@KwbKU&~15gE6mE1{rOLxi_Zi;OCxl(gkd) zv7O7>!lBtfAeY6$&K_9XnQ-*xkZQ}Mojp3MzK*$KCw4Ln`9s5XI8w^KNnBO*h=D%I zV$E;rIIES;f>e7!UtA}T{kS|cht&hoySTWucb2@LWEkk(wC{LZzc@1KZcIk_MPGSk z5YL)QZlIY+W^mof$6apnVC`@Jijx1G^@jz3Nybld=s(je{I^B^+XDYZEWpr}XQ&fq z`1=R(zr%kH3j{Ie-!^)hWj2*@&)-gTnJsN$efyy5#DMj3)`pBYl?~k zJgQax6NP^HdIXV28+0|J7wRVHzLlnUY@^tt{RkG@UB8wR?4B&|ph}!l`EHRXd$@!@ zu=ghp?zR2!K;b5*JoS`nMw8Qf4s;mF3NozicJ2Xm_ezgemb_zx$huZ{4zkP~NkL31 zy{kFK*8B+=be+-hZ&)gG!ytDenAn^d>`a!>f((N4?_ye=z0WuIR1K7Yhn|KDzAb56 zFy3rV?_1`)JS!K_gHVvUekF&l=7z>(+N$iY$?FH81ScL`jqO3U9n>gDBcgrchpR@t zS$1^-7utKx)}5uVeRLBl^s{dxUI`@MDo_+Gxv}H9b=DS{+_u|wfVekI?5QY4c6B>T z7KT+18P>e~&+$C`KbP`aVV4b^as7LcKpdiajPqnvCz3fZsCi~nKgx42bvFmCwQS@elErU8Q825u~&~6X$F62U*x>J!CNHTu?urd zO(6#GjW;`S3h%uARR^~lKMzB~P zo&IfL8=|&+@qH?3CnLvE#IKP{j&CVq{)uxYBFA+!`4qrxlRXou^rbH=5Uy|QHy={E zzPu(BzzoWgyJ=$+g7u&jnR4cply5RsDJ_*gIZ}|VnzcQ0v0e3UgMLgB;3hMK_8x2^ z&61y{?{F4%p4cR$I6USryKj;nDa-GG-YiYQ%8y&avq|9-)DC;EUxPa=F4~fg^jP&CP`x&Ls`iAYBce2x-QU zF*9bZb3ULPZmg^y;eFcj+nYW?L%%qWpN?_0rfpyTi5EXH(6>GXpeEytT=g1eqpQck z@AAlzTGjp)&|(aXA-GWKz7Nyp`mc)gt$~#19?{k*O-`{D36qFhu?l^Lhut?7i+q5{ zQ-JG`%Tay_(fP!QTH?vH!iObhfn+US?*z0tom1&Woz69XBXp-;&(V5%a?=dHx*laA zY=xZ3(l$N`u@EU|l`sjGRl4dV1RrW?E&meVzrUc@Thz@^h;fWY2>dpt(Wd)xRnBTw z+6Tmya|@+3-cFr!XSd3)i7_&K=PqbIE*)z?LwvGu_(5lh>mBjn8hRZKTn$g`Os<-1j^tGMDq30`7ZHyA8Bh~iU9B5cjXr{H?UK6*+DNN2(+3IeeH^8Q4EpDbdel6Q8IyhrZ{V*t zpMbDgRYP^XgK0fCp^iWMq9DIQ6?6TXiSEK@zvpNMraEVlhm8Bx#&wQ#@J}b_!U#H5 zNJ!2~co_DOtU?G_>%4Ue!2E1KOX+~TYGcpUrKV6HNS&=GxnjTS$C7((+Bg}sDsp=f zUpT}SB#asCFca}9gkvHvrDk?3sJgnK@ zO7ebB**9AE7t`uM5N5mkXKB1RxDZY=_G)gdarY);hIe95T)E#)Sh2jSS?y)0!h7D$ z*V_*jew7b73&kj{Jz3QnpX1-!f0(Qxq@_gm)>?x5Nec@k&9RFjBr2&sp`0HKC;e<{ z0$wWhx$Q}v`k^Z&Y3^n0ycdU2AS$o^6tIpaSasFgXQCBHgudX1`ZeZAMLxFmlgq5z z)R7k!bGmY@`3|o4J4u-btuZi+d>kyCm#eQf-bjn?<%oSBqPV4Pfk>IoP~T;IDR@p< zd$HE#)gEp>xW)Vwuw2dNTe9v*c`5Cr0>DCP&ZmIYSK=YoKiq-8mO-9Um~D%Ci_EZi zoL`ciPV=Vt(4q{EJi-+u?*lFk>y!;6uvNFozeY@ywO(NO>^pm0R%F#nDqrS3c;_AuN*solxW$u!+^qq%(*V2Ft+}%<2 z({IuoBL}zaSHBU$VW3=xB|9#l3Xjf^*#2<0mAZQ5;aE98vhEV`UxFK&4PyTR9vS#e z(oFXNoi14e+1fqJ1YZ02sJeiC`H9PH{Yeh$>XK&UC}MzzyC6cvdAp?dSSP^Tu%L}d zyB_GujV%ix#8HMi{&X@EJ!|@tTgz5c+pb9Vd;Osv#*+w!dVaT47Q9Q2 zLelLVITUmJd>^lr0D^@gmz}l~7YEK%6%k{l#Y_B+{oTnj+L|Qow>cY48M!r=@2AY9 z~8w_mtZV5$q$1bCq6u3 z&foopE~j(TIq70{|LqRLfi|aM&^;V*^V{+%;BD>5zWfGsM}`BoZuhZ!wpn5F78ayD;R(wlvEbAxNORN*=bkh4*M21Do{=SWnd9!4 z3N~V6zA(I^sqJz2DZrbgQjQ8{c)vF7?eFEX4RicB2Kw1ZXac_yJ7|BVyO*jupU!pD zY-P94GELv%?a=Dr_TXe+72Z!kQQ@q%M{mJc#ONo zxjJ3;aw0&_>=Xd3I?S_@!E0c!HY@uk7Mq|CCQw(IlQo4L27kl3;MH#n=e5{=ykp7dVLafiCuON;`0Z?-dg$W2>qB1^%drd{L0%11FoKZ&9Qf zKl6UtY2fjM6mrxsm>3K3{gFb;vgJi83nY}!ZF!|P4x+%0&hGb^DrdugUYmd9+4%43nyvur=-lw)7u88HP|c^`wuWoUA(mDWjHZt>A?Z*<(l zr?SBy7`E^T7uQn1E1sJ})s+z7+NZ6d$pikBh6F5;{q#j_i94f(QbqNBmdE2x}z^cA_kGtu=V^K>!*NB$54^7fyaJZk*f0= z$C~4vj0|qe49Q_@em97~{+y9DGLRU&MHD%nS2$D?SB$%V1kl;g;0W(9SVWVX9;f@#yqxvM14_mOB9*mrL`7?#=JrV)zTqz z4wg;Q!lKcTY>PvmAd9Fum{W7mOUI_Y~ye;5z9+MM2i9R>x*@gMc;;iz>4Y z9oP39aNkpfhT_Lo3kI(DtK?$WE6D0YVaS=4qGFGaDIEC>W$6VO?08N&=K!nNCJ7Df zD9#z#>S&En;?HV>i5q@w8$PNI?~>rLmzhXVAgE<^(-&@p49rI|?(F{@$h*6pf2S^w z{Zss-<7Z$Lci7TwxAsz?Mutd0t>%*8TuMtj@TZU9km@)Zi8n}9Ec^(A$yQAv8AV`R z4Z>S>Dan$jfNx4U@!T^op-$rcKGFGl<_>Md3iGT+tM~kqu}&cUJWoU)i@5JG#+b!$ zKXnq{GpwIT+-oUCb{6~le+tWL{f*D+m+Lxd46FP5iFFEpL%G5Ffs!t z2_NbpHL8mV9bx4cbJJ^YUHDPXqa(Rbv|p?D5>O3_&2s~KTek?xO*{?Tfrc&Cwh}@q zsN+%pkCI7aQ~=3q$j764xYJu%DK2k^o8I|@(W=!#=LYAjta;^0?&4VA&mePcm|f6r z#}B3+6$K~9Dt00yeKgkC7;?h$P2A-;;}OnM_UP9r_~cVU@cOuUu+U3BK%ahP^4sNoC6I})+0(;Y{&Va!G5&-6GGU-J;cV^hs zDZn?+8fo`7bwJmCglFk(K{Cr$9d~UlvjB2Lh=6MPipi1{8u4HLQfId`s6#GxFagjiR-ZxrDYNRkm^a zGs|Vgc3MEs>meAyTV;eXs1zNH)_1nOCvxe^@?r?DmO1X7K+nI#9sk>u5@#k0a{@LT zWzL3dGlq0KMir;&mvx`u80+u1a-% zn@##@_AT;icd@>qQR;ja+LQi!8tdVD+82bs+mb?$NPXON60RHz2@b_=wC91B<|L&Dcy{oP=E?yN9Pi2xPxNsN9voWJPOXnCLGt|Wo=IZ z`4uAi)4^c)N;P=w`+a1^H&Rv*FJ#r~6hI89`8f$L*{j{F=|5@Utm+*wT9Uj2?d`C% z!liN-5tI+mk9>BJ)@JywBB;>9*ow*LjEJ$M_GV?Uu4Dervw}UoG&O(0A{&`wNnxA<`9p}*9SnTtxD6gj+^K>^Bo zzzfkB(KsA8GSu=%8JuU^+rgAX7jEoKdY(^B+Z?t0dZD^_4&9Vj!b3-fvIR5jIT0N3 zt9htN(Q?f;+M~oT{Zr}vCMpm%@%#0S{0PTNt*6=j(x}Sh`7v5W?cN`Y^B9V8#%7Ow4{gQJ~macDq}REo0o?;X%)qPS>KNl{)yG z-E&@sm?E(NGZ#!;NN>TEh?O;>V42Oy`<|K(GN&$CNYFrirt~6OR#M~cs@7{8UX>;_jnTat` zWAb8x+Vr6)g5%!(4RFKt;hiYuHSU@^LMJeO_~}5oQ5Ixy9BPom2BWW;|H^ge13hjI z*@Ue%)E$QlgOygBMuIx__=8`~^EC1+NlwPrt)em!0qZH+GjP8^rRJH8g^NYZ_TTo2 zMyg_IWtBkv&__qBU5G(RG>Us=+s!Mo9&%viQ6sOTrT-#-#&H?E;?dzggk{@;E) z|Fhntc6Kjl==Q`yW#Z72oWi)W)!>M!T)q&c(GVs6k2B4=Ia6f3iEZ29B&a5%$4pN- zar}Luw>19qN^>vwlC8?LArk2C_>M@rN>1a7iL@Q)s}Qf5dSQcdN{X-GU zoejU}ALkeBrDJfu660G$gg7P_qXqd>R|dWaBBE54B(c}FS98=RmqU%HdRzY8wmeHe z#35Hgc*9@H;k)FR#7?m0`+IZ43sp2CU-J`t~^I{ViDuql>yPwX?#lO-0=Q)DxpU1GnGi(0pVd&dUd(LK)n4Ob;ghY zt7K+7-IXRT(9@4-nr>GZ+*gpt*HO7v8xzU64+FT>j2P>_1MT+c_r2H-+9KsgH)_k+ zU1xW8!CF;|Fz8+IeuBEP$2;%w^g9l0h4tXQY*3jJZWnA64}QkLtVgIMZ$)WMw@|POlDJIFnaWDv>X-U2Bb~ELBR64E{b)p`mU9 z!S^v|6r+3sOE}WBwlXFZ9X_M8yzov^mwHcHa8)gR$m$DTrTrScJQ60cUffGgLy5$^ z&VHqu&c`6<*J2oZKI32`H`T%2zQLTYrR~~QY5lpk?UL^KJL2(tcVCF)TSYY!x6kr5 zxK|c00&U6ya%c~D-w|^If@IC$!=5%M#RV_nybj#HW-&4M0smIFVp-huLFnCe#MASK z(K4*kPY+ka35gvw6~+_A8ycR@+BwEc!e*Q>cznTT()&SQHrRZMwqD)1G8dQ!S(z+G zU1i&4naI8jw+YYRc(KmRht!%kgt-lUMj{{WTDKZ08`h64jrs+@SK{_G;XmwLOYWUZ z_Lv?9N-IYamXZnG_ zIYD~#3dUh=L3yriDRhvoYH$^e5?v=-u-3#1epyL|u$i~H8sH5H-+l81F#>2HF48Bc zU8s0GaJ;cM&x$hKH#UuS0yz{+U9&U7!oFR}aPI@&kayywbR+~s8G^jHx+w4}9&@rs zE-*3N5X;OOOnW`CI?>!453){EnzZwsoSdX>QpfA6V5flwiCp~j{zAUtu2J@L;~mG% z^V!!Wg2sCj`{yQ_Y|P{BI@$WS!9N2#K2fh;cu+jg(&&i!m0()fdSag`JbSzv`FVMC zD|X7xxKG11W7jRWaH~~1W$4QCdT)0V_!^bR>s(2Qf;`sk*=;A`R-@r*dw;_TxTb;P zMr=B7pYNijgP*EdwW9oiE*>VEHqyo8V3k+umpOC_xFv*%F@3(&B$~s=!`-o^sU^Co zV+a|XCY^QscYiJZqcCVFbyq(o?WVbxKn~pqgt2?4fZHD98jO_519z#I#+hwg@U3?h z2uC*`LBy^MBQ9QvX*&B^q|@i+xsXlBtS8@m{g;|gg}t1XYhD~oTE?;mBk}BEg#u=u z67&~2&u5iq@bS)}SPb+|Zoei=+qgKELhU@xPaCUb)D-q#D|S=a8l?43S-h1pZEcHe zn{b;UDlwL5hFGnbI?i?+T%F?LnZ9J>=?&Kx3kiU+vlQ&zdTsKLv|ZhfSKBImb?VG$ zw?m0^Mj9UTxaLcPHgM3+*sCHyu;)C*t^J7&jrp1{0lAlnIiB6t{DG%+44>$j1Nu$k<5wUEJbC?GkAM7DeM@i zn|Fg+FIbI3;AHQy`4OHnH#Dcpn6-b;Sy(#c9vsxw6CaTtu!~3eUJ%>%h-Y@P?G)r$ z&ljbUsT{1+qO4dPtFt7eeHAZ5u*B>$=VzvZE({eSVED=mPe-;?e7eOXcXF`$LpSfJ z>Zzh??IwbrCqroq?ABpP>O7<@W}R>!=WpZO2bUVhWF@vKU)cx+G21wr8MbmKCnQ#V zUOa9MbJHJfg%e0kTly*3i}6LPB>qP``vk*LtNdk^O|!ls^P-nRH~x_w_s`@-^*C`B zH|jutvT)oK8H780^Gy+j(ay?B^E0k9`y7U_#$s&CvDWUmemA`yf2kZERx-{QRddzH zKi20!MklBu$^0E#Fh577Z<#;wk|Q_`=B=KNJq0wm47Ywi!6mkzdv*%oGa;^bt_8&* zyXu)7lfp*Eo)w3+%CzDBFDOne;T}r_+jyS>R9Ckno32Tp0)A^+!pvmb%O@Qb`+p9_ zR>ym9)-~bu=!0)rQ2hUcf4Dvj3Qw&aw@EY- z$rWMH0BP}nBwK%!{-7`~gL|EJ%mTLdD%&M~f#=>)yx*6|tQw|em07_CgA5k=v*?p# zyC-}1yGb8PQmddi}E)s&ZQnJ+1w9=y^wDYhYytBeLjey|~#C z)v4JSaozM`z1hyBbu3osWWq!TQ5%B`Hw-BGsZIPYUi@OOvo~5`d8B<&;Ry1`Z~9|d zEef1%q+X2%5i6ziYCcQ@VG?q53i>r|ro)i*V1iP}K)hS@$xYY zLQbYNYy)qfKjK!6^rKTiz)pUA0do0XSL8xMr~G{D9?uwN@8O&hVMp_4zu4hR1A*JC z653B(-QTz1Q@233Qk}MRf{aVuk+__7?a%ux@#qM3an;N%r&-D>1!2i8z_)_&!{m>D zxbXihhA*I{@5{SZ-_|r3t6nLu?ekoCiU@Qq$dlw*Yc2+cqiXy|nT1zKw{>#Zneb`D zD73bW6PNta(*=54923|#gIsLy$sF!1P~K?&QN3iIOj_ti^d55K2^FSAc{)>lqgX%F zM!#);UELkeFnhFlSk9MDUgKmWv06^|X`S8mQ7E)G=SxTdGOU2j&s~3gNBNq-9+%9t zn{=FmBTA<(SJ*+^tH^Amn^vVsqs?PUCjp&P2!8U9pDL$)*h%J{N#rvbspFOt@`tMf z)4RRFV=7ac161=8+huTuUjCHzz+X~8K6S~o*r_vf<|(mE;iMR?CN1Xe2mBRIxRiPGi-A!CG;dmQF`s|TVdM&Gm&`G0=?D@XXZtQWqD2ftqKN$XvjrAX`%$YLZ;c;)MN^u#* zNhM-ZFKi!oRqYgzXt-HaJ|0|PiZ}&a$gh39@nfs}#>tr}i7gZDb*Ca@@vME`V11uA zCtH+N3-*ujj| z$&D9|H|D(EQ-d|!JlBdqfl;xhruzo7lksKYk4~~!D>O$c28E@=>_~Tyuh$TUhqBfN z`&rB9k3D+NKmWUOV%7HL3ck2quYImMyq|yA7klwbqrPNM?2Y4*Y;7h^=J<0<%Ul7 z5=qr>S#Jlg_bz&;?u31MQWaY)$rtZ;{i^u@>Lk_)B;ObBEE%9kRrBNTn*UoVD(KO& zSd87OexKEy<~qEIwzDKys;RybNzmRDd_^nw;{`0R?(sgG()&=NhQb#WVp;fc?#41n zHT`Ap(WjG-4F>ZL+H0C7B|EBak30HHiKZ(*Iwv{bh8MRyCBtldJ%t|mC-+TRmB0MA zO86hIo?P_!JMv*~<|B%&B4*`_&UMaA#cfl+hbfhk+Q6W z5_a`&W^zT#V7$dxdX_yujBy+V62WqIIq&^~aKcfN4=kiV_A#QgNQR64KJD6rcqTZj z+Pcav)#~4k#=v6y+|?KjSxS;h!iJJqKUg{0G4BQM@}Q|0S^b1MLkL!#E0}+wvAdRwjdg)ru2lD4 z`do&ixt87XV;mSA&nzfelZ2sFX598Jj0b`F=;kXE<8U8A&KHvshRRoK+B9VBTRi!A z{T*deux#mBk}sEs08)xP7FQK~BTv4E$U#+Y38 z9aY0#jDWv0_ys5~b%>jrK70jZJ7GjHe}aVi=lGbY$&@P=b<)>z1_`u(_c&qEn{d`7d?DAl|>lO_wDTg~-&EVPYglqOdk zYPaHBcg8}MN(**-Lq64D5mr$G+GD%LLgtQSd&kmXy2}upUpGx|L2pWBJo%!xU{8n@ z(%Q~5OOsYp)mC$eTQn>VTJ_v5zI-#gVmdU(Skf}yP$L+JC0U`k85ec(Z|;&XYBSqp z$}aDdwzVI2;meb0E}6CU+IhHGmx8{g@J3FQ#4SfxR=p6bEDe#j9crr!om%izHtSe4 z4w>>@{yFn}-Gp>_^$^O#qnq(l3BlArIT{8r(naMu2v72DL`u}z`-w&H&)0F6^Ny|~ zO02)tE#)ahMpYGdJ{Omc$$A#{$diN-T+$Rg@$vCoVtD@VeQy|f z;eI!CENh1DE_#;6228Y6wuHJ7Aqa&M97X=J@;A<0Q_YSO|{Cj4aXnXjwr zx`>D~E-zON>?|Fb1;6i;?lJB!95u}^%GkaKswl#u*Px5JR(HTqKC0NiTi|R8{R>=m zGfP4qAGk;a-o3j!V0GfyJDP-TH8Ke8 z#Lm4b!KjziBoAF^VuCdH6GD3S*xYqoqC#r>6D1tHSnlj8)jJ8Lmy?$aTg}Xe^giQ$ zz_s}H9*)%9c5y8tUg9i~63Re0l$=yHs%b$hA8G3|PhPwiH;cfo9_}fNp>-HT{QNj_ zsjs=-X=e%8WpC%n7LA0Gk|&IG*D!9wcVHJk8hfBopqwhxj#( zdgOJE@;Xvl3aE7CgZqey8ao?^>$}D0$jFkTCw2y?O!I0{ia`o$lq1XW{WRH87B)w=Op}Kh}qz8db)k?n=0nxI)tt^_ST}rExTX+gsl$GV3OA0LAm4-Su zcn;afWn>-i{B)x13(?1x@WmEtwTnQCM_Y`Pub{5Pb6LlZg~&e;I)Wtxm-&f!Z0Acr zZ7<)4WtG&JJ?geVHFqjnB~&7<^JMGNKZVN|bxyLu&a3|YIruXr#-&!pp_vBnG|(pn zO~606`E*JL8^K3`w@y^e3eTHJ(mNv~=v}xhf*ZIe^btyEhG1{^BPuJS?4l!L+5IN7 zx<34!{H@6CWvL+`WH8>mAbfB~wu>(F#_^i05~I+OU|Kn4PHds1S4U;Gs^ig-)jUg` z$+&|x#m%lI5wdCbL(768w;Z!>6`?V~tFDbYu-zB}&ym{gww-QM6SVnk+V&fD$>sqg!M5W!a!6=rL*pyZ-` z@LJHKtzAlWapCzU*44{R1VYM>(KS_KkVV$|=i{ye5pAxdI;#a=RRIY^+mppTUSP0| zqSE+yx&7qpf98bZy4I(`YoX*2o-49J z9(uYSI+i;$k=>u1veLjg?t<}EZGNxB5y#&Ht zJd|~muG!lna^XB-(HqJ3zVd|T^!z{^wxQvic0NN z8MLZp$@Qtp+w&gdy6JQkdt$&&WU&gyACwX+6!UT?z#J&Ty#6=G9o zQr318vIL;ZvK}GpWf@Ye9_@y8qWk++t19V!^-Ww(AvDqoObwZ&b^P}w8(ihHXAN~F zV~MEiB?UQ-o^-sls!4+xYOo8RmMOk#`;%-I(+f}tT|l37yT9ezxUt281kEx%kyIN* z8fdn`fiwvn?cD|6^2WE2DqB>!;-fr}-;|sxq3>(XdV$}U3yY6*I2=G+?7aNL8~Q!c zLmL#6MM*Q&xa9OZGw`}A$Zij$QN@m~!BxepYsgD7(Y*OC*Y`~&^g(d@yj%SG*py_h zY;WfLmBmiD@f8H`NS0ttuoqwMaF@#uYe=id1RIJTS^66xV*JSlXSoF={%>5*} zj}{b_CLKxoCJ`+6AXpH45|0j|XIaQzFf$m9rD`+{fvi7K=d++5sjBo{ zQ$NfO%tysl3QlzDfFnXLf~xw;$9|?s$`4jV+C58MQxh_p?w_^uJ0eLuIbtaKGJIkm zTX`72R0`#8+59{T^8Z$Nkn?PL)nC7QyO*?}6WOHoDXMq~WQ`uWx`SN4p9kwo381(u zp|?c|OVUx0bgR&DeKBM{sC?PyVGRzGxZ5>2a#kOG?m6K5hb=pVw-k*xDq_A^qw-(kZLiadh2U1peIbzqP3(VBFZ*k&&RCy!Qx$MMo9iB_;^4;d94|`D=bOIaXxXk2V?jKE`nq7tYc#qj# zJE_%Kv~OpKkk6LFgz$IW#?)r}=H>ki zvi~j~1NMDkZTjiLo0CXYihD(+{=_MuA?_4#n6ra!WpSO}c3kasJ?f@QI;^nwrqbFU zS5N4+qSZ#1>N;&*Ia1x?ia`T|BnFD&%~Ezm3He%y`cKkmpHvYz7ANOWsLU#q5;zKj zKwYe$Qr>scH-S&5j%HwGS4wJ-FLqAGJ@??mnXINu;z4Fa%hs(!#$3A~9edW3q1B#Y zdiUA^u||p{W2N8|&2GxhzLqe$M6IT|j2LciGD=1ii9iutb6|7i0F>y$;td+9n7yDW z2n%;C2TzSpZQE+*FO}KkE(Sb9Bk=0z3le-IVYO;+wD{0CddW#C7iso6#9yKh<15J@ zW~kD;;E}i|AuFhqT9g1xXoR`#y6-jN?^vm(Cm-43W7F>|$J@u%va_3A2}$^A@T3kM zV!NbyC;i@m1*@`gPeI5!vi|&NgZq~$6`(;rOx4laD`m zrum)vxgJyflqS2+J@QWGZ@HS3%({OJvM65TV z4#j~ns=E~6C0TQ!xL?&cA=UpSLXonEf{QDAk@9nuQ+CQiX`$0Bp@9#*)$17=&JUW7 z4IOZ?E^|I8MAmz|3f|h&Gf147XcP+D;k|>CTkF7HSB_mfa$xTkYlnsl^4Y0!@J7}m zF~BTIz2-)u<@5jxA!N`PrrVP|t+}Mg9TWjjKIjRX%{IcvUp*4h>zGR$7TW5Q zDVoMAbvdEfcYXbJjAyrnv!ZhO_eZk2rApN!4-0}=L7n58MP-|U*Q<%EwRtL?R&NF? z^4mlg@$1=Avnxk87QeesXOxG##%5$g$|o-0N1>G9p8N{bzO;cT^(NcK!b0MB+0SC+ zM8a5QXZu2^Bjd>4TyX_@faTNOi`rWyV}4A^ni|C%z6oKOfeNt$yAzz{a`_1~7rV&n zO=ex0!zMe`X0_ngL&Mph_TXbv@a9?S^7Ny1Id3klHjfs;#u!HW(Aw$6z+hb_wL z&aJ#AP5VmMr^t_{sFv8;VQyfwJQ% zpx!s|2nYCd27C(0*?QwluCry>s-(OfZ$x`3dodTwVm-u0@A-Q*Kbav}486VEZaAs1 zSk;5LGkwprT_0Z2+(~!8>eFhR|>a^D7GT;h4Rf1RpoA;-J`EkxFph>r=qq zgAUD@zv6xvb;D+Ub&i+wXb#WsElbt@o5ucKWrG~qW_IgT9upC0| zC95k~FJO1PbQrhmxnSm1kxKc6@nbz_qRM3^vrS#^C$>T6UHrXWwZPM*DE*Bvg63v^ z!=G&T)Id7NX$?_rFmlq`gJQPW)qj=+na!-$V|VvCaFqb2V*dwq-x<~9wyllZts)jg zH(khK(?oiW)F>!bK^!CAbxcN+3!Jm{3GYq=ZlsLPtSCdhZaV69SImevf*P3W1pH(x8hbSVO+Xf(`hhN@)l=F(PI zBZg@`TZ@+O;R#I>cSB2UTSwuBXoED1vCLpiVn(GQcSJxRI;{$;D0L`zki*q7^K&hu zf#7h|Lyr@;-`h!1=Fm3JE2>Baio^CwDjuz_Qeh4yE=u1DyPP^tH)yHqF2(JV>Lu&o%UDN_?#=pR_4)PN)Ix0;gbb|mkG)|Cre?l*wsPu`ruSl3 zd7o{<#lNLS2t z_&(4AtXi!VdQ(OcRI5#r@#?KC_^t+Llj|+5DgEU6+0}=ls*&28?;7d_S0fA(tUYF| zj4e1-BA($=@bw6JJ)j;b7};Z8LUFp7vo0D_zPGsvH;>)C)b%lLesqwRuilwpMyRBj}dhCGBM#IU*Cje&*XbI zN|9IQxzK#~VOSqjuQJ_WDhjXL%XMU>*%0nerpU|OB&dByl*#7%77;8~vghNNPto@&gR5^be4HW~6z!1~@94U(I)^$VY%?y!Pm5E?gC|fxev0PqVf(>IFIA5^8JhD2 zogcUSVoIG<3!CXirKq8x4Sdh^NDYE`%5)~P*v4igGixZ>qIEQj4VmfC=1^fc!nPLC zXAkM6(4jMu7viSuo7#^=(K`x(3knu>Z)iowWn#!%uZD|*t?QC7CI%PWV5WPSMB%yKql_TbYQpp26C{t}K zDlDictIG~tzX`+LYL$UoIQp~z+0tfy4+9e?PMI?IvK_mRxcVF;>)oHd2li~S;~3__ zy&0U_)Ae3NjcS!LGRx5^Q;tX$e|V4-))n3~kdR_#N-uy2oH7x28nSl`85iLc))%zj zXtm8a_oqs3A(&EixoMx)(in(x$??6=-I}aTpw1~%6AOE^Y@cm5;FReF5tAmH#e!Yf zkfbde8%U^a)_n0&@u%fVE+G-OAGK}zeX}r15g*^&s87-ZWM)M*3=L?4QWJ(t1OczG z%|LdJ9h(0vA##>E%Di;Mt378^J2mgOOFb3y@EFy7YSkRTtM;%|Q5X+O+Pf|{WyyA| zwjBMbZmUu`I*_~OPy~(YW$yIJfa})G3>}?qK#HUgcnGdEOT&S}d0|6Cf=v<85n@g8 z5#IFr94zWqglpCAc^Dg)`)I#=w$@77 z_RJ8Lm~9xv=(Xm{qBE>tn#dS<*RjgU!9i1(20uI(kkq;;IU5?^i2pv(&Fbav5^NL} z(U+C71+|p8tMch)apRFhsZld1vO<~H>Xhk=v>UYD$o*{LyDlHZmhXs^y8mQx_1H|n zr0wc^h`!~sh~2RFb4oH4udOQ$(*i4~VA@XrA-}_y`HDP&p@;r*O*zx>b@AM8Be6TF z@a$LJ)cw#v1|7-PEtv#+j3T6=YjlWb)O^*)?S0|8TbCz{Zn8wk?$$6BH}R-bcVY?x zesQ%OFXh~W9FcK2u@lU&t~xlQ>pkYentPfFY4k(Z;^6lRWa$+ zmhc1{xn^0Ud$Y_IOl|r%l-lLNWaCZCiqRx3Jh##WcVRxfRDn|JB;7EMmTt|JG;oNT zp3_owSfX_})f|nR0IgNsb=o#uu%aXjhcf68gDiC8@E&$6ETg~%V{@m(S4%Wd5^yU) zRh7F)r=``SAW6@e%U~V=@LyJmp3Ec+)H!_!qD+yzT`pY#qW!PW`FQ6;t+cP3u8kl| z2E&H3Jm%G$xlRHzOK&Mv*du3rzE4&MBYUr8W!c#cwDqziYli#NB6lJmotxc0oVppe z@GKSgzCJ(9Zf3qL8yxZGgdv-OYjWbz+zc!MiOSt+oOPHJTcS3GL;c^D6)N&>f$OuB~+ zR1I3O5P%`7_TMfm&{@E<^V~sFtEM?Rc-B&q7i*%_n+;zl53k@rF35R8LRiaoMK5sb zTW?%ip_a+cwa-%ywyjFz6opT{HoD;zw&Ox>=n)M_MK4zr>|S32OBq%>)puiMsLlcY zP=L#T>#+XG$@9Ohwr5N;))j)NfptJ^;qIE9vp5OaM|)bVPhmUKPdcdtEM!J`8H5tz z7&q^P&<|q9`m*%-%qnD9Wb(1kK@XG^J&EntH~yi96xT$=z_w=ad5ue*qAo|hHaYSgtX;S$SIRG3F8GqsNsbNuejVVZI}-K$8@FOCN0&k75@ysq+wXqnnY z@k&=!5fn8pyRgU{h~2~A{l`|Ed0;oWu9gh5XFxndjT_t#z5BP%2-Q>PthzemC0 zBU-}7>p(aAFScq#jf{uOD}hc&sliFxHHQzBB-AzHC});`V;Cqu95+ZD9EoPV zzHJkI@g1QFIY80HTY3shXuZc`vO`cqjJT^zQB*`Q*C5Crw-K zWj`McRa4%iMF4$wo+x=zqOmoTSJ)IF6Qx(BHGF@mw##mX@G7x{9WISe*TL6FBSU9$ zC}G!s(6{S-eeXn07LpBj2DR8N05?-gotTe})5JbsI6n?n<+KB>cslS2D5)TfV33Pj z?|D3a{s}yxT&`A|6jD1&axd2&I*kCF!1_OmBp2Ch1ymufky%VgZ_4urM|r;opWuGHDx1y`}-)z z`(kXzlbw*=qE=A;AZpHz!&Ya;OX@LC^hH>%31cDTdxh^9?~93aMGoLIkGHk3+4)jO zKi=s*Uk&7bThV1@z344&Qros5nO}#iPF~Hiurd}piCXF0+zo7MlWM4%DitNzn#>n# zH%gD6GW}YPYU|e5)wD8THHL{m#|Tm*f#x$&xf5&JL-W+7n4Zpp@@rp64Tk=bU7|@g z@@?(Q)j8VrV$;2n%JcJFT3FpMt$s?t*bl5|6VJ$K1Wk}nXwo#lqSAtp6UaMAvk`_$o~BPK5+2{&`3^}?by*zdTGDVHku-GLB)m- zlQ2P^X;safII+DHDm}$G-rf2hJTH1tdX5+T7J7JFhW?B*KF)aK`4Lcfg_>`z{iyprdmK)K(b|2V9 z{TjhdH>KYpoU>CS(lf++`{vsAMvM6u1F3Jk{SJ)x=ccadfA}|b|G!B-lSn@K(tl*1 zFIPKbzbvUhNpBw5s8F^YFIelGKwfW`W)QIVs=30E%%XLXb9*Sm;aJ45hj&3!4Sdgh z)W(EyPEXRy1t2tb`~$V~iJQO%(9}}f@R4Cpf79-#%N&m_(=BCA1~I}tLq7JcKvvsk zUDA4KeLZS;#HNN@6sj%ek+F1ABrzKZk2~zo;iATRT2!UfQb{A%X}BDKWowlN@3vJ& zYx6q4|d$rwzp#@b^VcI3(hod%s zYzKaqk2?Jo_i85UuZ)Bt_%`5UzeR*0QkKg0%2OXwJwtm!lVwOXr%&>|^*s-beh6rivr*Al8 zHq@o+9YbTy4UQ?#@NJ#Ek!p;6EE0W?;yY`);BC&nN-@c>_XrD3Zvf@u@c^LRc{KWB zQ+GvFS9nB8=!IrC8B7CGfm%Abp>ds!O3J(^RK~E(XCP%ibFSS2NPjp;U3Qvw3CiZ! zUEI~|^>6Z#HXa8J&2~N61}RRiACbs~5rM2p5u|(3KS2eXL9+4L+5MA)tldBsT}Z11 zE78bN?Q?NkL)^G$cwltMbY@Kq z`Gvh1ANTCs8F(~05rW5e9E+IYrAg5I{SV2gdFE>$0_8UZ=K6$-Bev8 zbof4qNNgXS&7#RmI|82F04R4kzgYXZ!Iv;;=+M2Nb%XB{MR4Pk2@_^LJ2>lP8tC$) z%8@?lnSM0EY7#xoQ)HwcVZi#)PkUkLlu7i*59-1~Q`y@?kpi1X0)Fxf?~@i}+t0Lqn8;K~H`KW8kkwjiF5#xyG=r{;+IdHi!Hi~Se2f@v zIxgx9wM*S&V9vLQJ{^_tBCm%EGZ!4*u6$b!xciyG3ZrC7?Z$nJYW?){=Tj!jjq^<# zF@1n#2CnW{{Uo}0`DHY%d41#HWagy(Qd1t(@?=YCX6LcTDN}dv-g43}PWzW$Asy#! ztv!y3B|kGjo|e7mPnkAiCueq!nvRkgd;H(B1T9;$()nYP0(9E7maAjF9rN1y&}S1*Be#BlfT1r)RMR=BJ<9;7T13}1B2Ss#ae`>eD3FkS8ypo8WEL$M!vKT} z%UGRUl?=14hU=^8dYf(SMn6cn#F`Yj2ADZ4xx>)-M3ypot(Si~dWVMq%1fwmq>O(A z&3V&KUY`j0FlJ0hH$(4m!>wuU-qWNl`{t<`)vsA!3=iz*CYu(9{E7x&m-1pynV9^~ zRd6rgt^z-syrBVIgE#_Av5RWRId$}>9J^B{afsrx0ovP%E{B{XSrTjg zQUycp#$&0>;{UQe4wMeMY~N~R>vPf4Ca02G9AE=)p(#f-MyAM!l5t zEHY3BBBwmsPhfr(Mev#bF<$G3a=UOqIx1cx;s)?eS1S!Z;ZohTeqa*nG0b0YsJVB6 zZe|F$39XN9u~z+(LyEI}JZalTguSmei62diC$fti5QUUfK=dITLpi{Geu~QhMeKe* z;<%<2ve#xF{W6@UKNWr6#m)5>vS~4^7k}fzy~F>TJ@X%Pxedq^O3kfS_27zJ7+dKy zo`DH6N0z-IvPbs}0&G;G-Q+5wuEyzOn2%0oJOPr{_hiD(XX$SGv@G<&@yUKqV`iK} zBPPk4&A0Gh(YL&Ox<+f$9M_HJtvznnVx^S=MGJ!2W2dMtS#$0q#Znqe9q!#@314>w zuTBXLHtgGOAe0K@3V#fGg@dUZ(FG!mp}klt3g5^pJZI-UBizAZ-5yZ4QC+>ZbXzxM z79B#5U6dMf9?VPKw&qoiC{)n|DT}sNMk?{Lqsv3?*zs!&-iT|p)f@!C$_YvOL5pZs zFQZg$ml$CLzlNVW zjIu8vYFaxT;1^lUK~F%}A%W6RhYN%`z=2c`h+}?bg>hnL**3|aB&v^PZ#6zgA09X0 z|6+IN&;DiETGj(kdxs3qpE6ac<}*j5e%o+6!f7pD0U624zB~4>qU}UJW~`-C21db- zBhDVt_ra%3zq{TqeRRrXBm$r+HJzY-bFgA!1*xLGkxI0+)HCXH6Td!LcLu+!$BgDx z48{m>FEK7ww-A8K?59k~Wl$vt&qp%g^`tsDb0CDEVa#W#U#eu(7#6xc@7c}OE@}nN z1-_EF`y|4==Fk9)JD)Mta4FR0NPiUtF7@ZMR1g&EkImBD;C5^z!1^g}vD2wxLC5hD ze>Uk~ywBV}9>-CurDTHnx)&AoQiT6l-(6Jp34pn1* z76Ar&HnF0D6=v*3q;O4=yq|#Inf;3njGsjmsk()^h$J@;X&xvc8e4|FCT7seVP!j*APDeg}35H(#b{~@&yOHiu@xIZn4~>*= ze~-q|E47@oaZT>zEJKEFs=4&AtEuXX)ctcTzLpaF;vtn+q6;^I=vhNyYK8>FjGae< zv9^5kb!yCx_Qa~52voP#5x}ZyxMq1>mCzFR3E#7FMK2m2%abX`6JFn+z_Z=W$^%rY z>{O`i9L)=-Qp4?;w$!taI-ijnYF{2%RsquhbfJ3m@jMF9RO6jiup^jUx9^rkN3XT! zJErhy{}#v*4rPV)I2Wvsxp=!Y;NZp&z^c#4o7&foI6v&*C{hU4v(T@P(<+U56OwwY zqh)f0k|DKh;eYwJU+jPV!%u{R5rc_|?o8AcUxZ2YuZW|-jn!{ zE3Z3jU@6r~16#?P(~c1~(Gagg8Ps0c!#v5w8O%T5XwV!`5)F{MkcTN+4o-`RXCd&K81f z0$<&K_%%D=m0e~dil-?jVP>P`iQ^9H(2gp-f-%_Vl!G2;2~5rnnb0>)jUx>rw^z``(A?5UJU zzGQfk)~3BGtLP@G`(ka;&<$3d|7@51_G1f`McDw-`@^|G6jahOXm9afY; zd^Hp~55TKj*K4vMd~OEa601Ac9RcgI9};Ptx_mW1hxsVNjySV|bo}}DY{^QuG`uzm zW!qCakyoBmU#H_RalNhba?gxI$O6<@&C6<$qK=!^s0xmETx;xElyr7Uo`}MKAMakq zHTKmyfI*M2@i2}1_vc1at41gVC=6l@b{;jc-iFU^OiIN`iH%P;d(5kQMW$lvlbbu1 z)FW@}NgLa#JIN>whA1tEQ5TQ|Z+wWL6^TUFo*b8W;E~I0Xe1k}&rUK=vi@Wq(}&~} ziO~qqD6mUNPz|akhq|P5DMWbR}e+uiS2hob6PzZm*Dsy=}8Et|*wKa62f* ziQ9=QnCe*i&F|{_8B9_CWPZMvo)XA(&ZV}tGG-IzL)J_Hxs(xPp~$&}1y4N+LkB-_ z`QNG3&sZFK*I|9RIfJ z60j4F750^p!!;4V+_%x*4M@)u_s82PSm}zDm4S3Au(oI*V+Mo5j$vMA z?0G8P1i44vZ)EEsub7@P$+mU-1Crc}HxTsXxKH!EE~H)|Ptz6`w_%2E_N}CpuMkpZ zS2JJ5|H8ey|L48P#Kdy6tnNpAcFIIBKV{;jj{;${ow^O0)C4Y<}&62{(ifCu^7EN&`klr?>+P$ zAJ?4esLdgpOZS}WD}i8GSHz_^S?Vf513XD~_EJMc_r0Zj))!Y}2+sBNxQW49eAXVi z?8ctY)1B^hH7C}WC6I3qBAMMv7w40`eI-1oxtXK#kFe4Uo&$A-438yKY52X*$JrbO*sL54zoAXG)pHu)m>@iKlFEnHNJ@N5)zxQt z_AT(;Tw>>84s-&xyfhIlZA>e0)eeO(`&IWLu63*-60qciL@!0wMD_yY#qQ#okY|1+ zg?oM>I)+ZG!N+X*o(mWeTJD1wyM>1x4Htv*H1 ziK2~<{pPL|h2^UU5X}(@P1hoV)%EBhdKGvl2Fd7)+F+1y0=2c1Wx_P5YR1HDClnY0 z?!0rfmB1T5&GnUHoSA|Cceu)eSh)|)@COwXf>GE6Eazp@^8`!Z}K zuKc{d1pQX<)i0#S!=4u(KFW)cw>oJ?Ba1IxyuIfVTdFGHb1{dfqFLSmh%jVT(6ESK zr zDQAZ8O{L52mWD+#pp^_C3xku{>MD+lm$fyP(B!-qU(B1@ zRVa!|#o=oVC0#s?1#Y~RA?(rQngS7i%fuuG%ut%KUZD%g)M5c1k~|U6oW<|mDyR>8M{`z8ao$v9y>)EiON;L^Br4TY zCCXKlDC9@`3|lIklb1HpBTC-T-vkcN{mPm3-Ka^hV%BQrV?9E9fv=_%m)tydgG)ceNxAE#wVLId zWJZLIu7}EecP6)BlwD)WNebmiewi)rUE@vAw+qr)H#c^5h$G6&0xsX2P89dL!<+^y~=hczoNJ|o}Mx#UioZJkncrXf}6yhkL{lzk~@}3zl_an|6%p^m(;ueZ4CS^ z;Vjck(@OrygL40&+s6lUYs_}_SP6s8-w7%o z%8@AF7L(YJC~l1r*b!T*YDDk}?5Cl7lHPCgF_(~7<=6$tabKek(!Q!2M>3yBj`-J6hPGrM_n~62J z91vL)HGe@~9c^A1**;A%BLEShFn|J#YfaKV#J8w!-9b4<{1LaX2`9dX8(se{I7n# z2F#F3O%`u)N&L8DJ~&aD_AOXpJLseq{OhRPiLyw}?AbsORPW0ikq|3-ATl2`j%9tt zgG%alH*BUf5Dtrd4r`%bOz*B|479E1fWBsTv@N7%)fMIeQHDb?YKYNCk2_4^bru7j zH?*+DtDn9Mx)(iuB8DS+R?q zSw#d(g8ZUbUvcI!v1lwYj%W?#a|6l|*`K-B&v^(l7T}M~oJza-I|oM{(HIAoyqd`; ztNo)W-cK%v>^{8U7$pB%8kHh2xF&r&^0yx4Umb({CKnT6YVNBj+gCa>txxmdoxtyv z=Jx~in_~Goh#6``Fx8%SEGo`3_SSK-;g;mog*HT|b6FUfH8>iG9IV(x9Xv-Z zZ)jgTHtiqHlMqY}>0MRl{Rk8f-sKP-BlEQsdpYG68G;h@EgZg^*A_E_7xH=Q>X?J! zBjR;2S)7VG?6zp9oXxlOt)wG8!FQuPMXB}Wh@KSH?|NfNc}^?@`4Ps#k)#pU%L+v2 z7&i9biK^00_T`_ zgyzmFH$-ZC+L`N{kvyXEI;VX`(z6)wfRpJisvOWfmn&?fkb!##A+NU(9a@WfY)DbE zpLQje^?YRRsMHjvw++L}FrlWiYmZiz1eM=+k|hn3d!IV?*ZYaUA zKI?6MLRMI-hAbsF&=${iu(VMsx{tbcjrUoN(&lWTlcFJOq2kEYlrewhU@lmbk_JUp zx}?S=w_kmG{P;ZKWemS~_4V$S0ELje@4e3vR#q(mArp%E$PB4G_>6a=hHvtC^Bt7a+?ahs<7Oj({ZqMRb>z3yDpR(Us%={`?B}xZJAs#*mbRxk@1vMd@B7T0Y#!s96ah(^o-a0LRkwEL z3L>*|MQmCDZ__2@Rp&p*9a)y-=Svk%JQT)UHt$vzAv^Tsm-z2lDlWk^5{&Zk^^LpW zsLw`yOqxc1)CeN0p9r;o3dKz)M&{q5lYXAmD)o-mORQwjrb#r#<(+e8*#CuB$#0Jv z&xJZ-ckf1)Lb4hXPnpC{nSSAoY5M$61MLw&{*(!w#_$6nmOvK|Iq|eBg}gIN`0M}Q zw0%+J;2Ld2KZHb8&?SRDjvUxW{aVMjvA{T?NPhXb@SpPfd-UARorto8Y))FJ1FUCi z+>CTE;Z*LfR4>IZzDNdWltS~N1QOAPDrWL2) zqaCigZyeic^(ekpqZBl#XOXI;#e0~UF*>aR@o<)IZTQRI%llU$eu(3Z_}+QH&6;9^ zhgE{&UK-Nk@%2@Iz>FMBkf~m(6Y`y0hWZLc+H5h9M(MlfbhpGh1pTFfK=Jpp12gyg zCQGPgSu;j%@-*CXIZ|#g_A6q?-lls|X?iVL+acMIOB3>rJlgCOur}Kk66Q7`K~J21 zSarQ2vZokj;)L6~igQcq;6$Xj&rE9XUDveP8NzC&oCuQ#D+h}#{#A|tF%9Dz96rPC zLqHi5GF?%MDZ{3o$N=h&ULvkA5y2p8L5`Z|Y~H&74)QpVpK|v8N>B`sxRH^FPDU3f zg;W|FS)HT|JaEcbsG4Ydw0V$E6Rbu=R!x(`L#C^>S``!@s31az7`~ukW%c+r9dsRg zK)@b$%0IdM`U#|h0x~bJOQYQD>ti~*)KFj9HaXJRh}9e!AvzE^fow4hr7;@j24@_< zFAVhC-S^Kan^Lef%f;f&RWYVK&kEgg%C2`>Q1WiK<)sR`N%SFlpbouNg$f!Fel~4> znS&ydB&SnE&c4@oE3&tXXvzy8m zqWWAzB&?=qic-+jSTisYXzkEh7{Eie3t7Ux-Ec)M?O7eNt&hS6^b`ct`VdxO!8>=k z8EP^%tF_+v5`7!7|f*Ob@RGMXF`{qZ~*96G=8bhD}9hIA0WnM@WnR@Za3@aWUu4lry{|ClAxv1E( z44f_;rQw41c7HVGaJYh<6#_TwvoNr5o#u?)<>bZ+cuW+o4<hW^p`oC4D3lqKA`d zB^Q;%-w+<+y2|kfYVTh^Vs)8HkT{*lkQrkGR@84Hho1NX`ucAXx>ShNygWITvzw)j-It zquVw=0-2ICT7yV!(4|7*RnYA2Ys44X3Qa1R^Mu|pV@yb!cLmRrylK>tkD>@B*IzuUfK1t(NX;L;YTcpxIO-ACXB?Xe2?Hx_BMr_PT<}tSnnS;>^t{Br2 z;Z3*|_}CKE!a*@1G8{ofH6!!NJC>-KEQc>(Dn~Y3ZGC&%*141^O>jNvm-B=FP}F~k zc+jPSdH@!i^L1Qy>s%vk!vllE3@CuQ6VKx$Ib#W@B_yBo7UAsIkv;zQl@kM}eey+< zYE%>wfAziTPkrl6AP8&Td8b7G_IVEo;ZzyBb^g8s6i!N2i3H zGQ9#T_O1;ca7O-F`ZnI|fG6Bf)%3>TxR`8UuiGd(%SOJHKiXLLfxcaxzp3X{Cz-4! zd^THZ=PEdt(#rYE0<=Z3tI508ClKre??;v%iE(KGJkZ5<_Pd7@7K%$*{0w9dqUOG_ zWG~k)1DH=B47TqDm!C4VtDOn^%bx}Rg;NEdZ>t4?hh%@Ful&j?YU?5HZ|m>BYZ2ib z%mv8?C!&Gv3fBpllGegw33xmV^fSfS3X=A!8W}zP>l?K!4HQdLPVDGLiM!M$6T5%U z(I(((Hqxc(B{iUbIIw4jO~D^^CJWwINPH?QOCn>OU)04!_kHF`PJ$0gR-ZC`aEU&N zp8VGLiJanE(&CXQS~1E!m0G~lvExd2#3(<-c+F^Ku417ojVCvd*W4A!|=AW={;U{#-y zM7DS2Z+p_CUsh;ZDO71ZGDqJ=NCfD>SOZ^vK> zLpBU;LJ1A+(|b-t!x34Mgo@_17&W@=tH>$EXUiYMoF)y_tNTr-XG~%j#_dKz1uv>j z7L7)wTQ=5Fj>TH)k}}GY_^-uek-h%>xc~V+dx_Xfmal^h)}J!%I7jb*9O*2JQRtTA zQZELI<0R7^yIC>0?+}l^VjZ808aRw+^S_DK)jQw^I0C3hPuNQ1 zIn&QpOHKqtI75Dt>?*cM72Ckse=dRSkZeNbi*DxQrlb_PkN&_#m}Pnql*Rx+cC z_m&^e2Pei2Sw{&M`3Lk$0YPZ2E7~GMT6SmN(-f`tZm+^n8@vdwG0~V0TVIyxky4sq zm_~X7lOM0zLw-;qYV^^typ*_fnQRFYrQ-Y3$KHwd*$^@a#e4RTXTfR~q!L@jVXevb+(? zu26)WAA1!?*zsCzypbo8FVg91mna4bD}y(2%nVFvdta@J=^wD|#~;2d=TA0B8086Z zKg_+l%6+u~!sPvU$7aEwwn=u0@(N{!C{?2YQ_E5RxoR-|)CA7jB1BZCzYh`g@pJO3 z4sT&y42Ob@qIoZQ)hs6&ktcNWPdpWhbxH*IlbSU)#go%H@~VdGoi^yM%{VEEype!e zSEQqYbMB^Tc2-ddt@u6nz!4ncl#1-ZsBkTHz*01Oarm}`RwkJLT;i@CIA zNc}19(|uEtRgL*kA9f4!`ghm2ue%7xWpppzIv(gO5gS7O;;B_%c(we1QbzkS_+vor zrazm`>+Uy$5ve8v9NZ)+(ZTTAW<3=H;SnB#=%;E~jt}aor9MSk&43pwK~QbVe@>f! z3Y;;Cq=3dpzA~(^XiZHeBMGGpa-h8y&dVcn%50`#Gfgw52!dV&U-DB$#F#Jt+fgM10*Hic+pA_0vgBx~B}KH6#-KM%N-^L>7^+|YBo1&VkpG7p(erf>KiT1aGQEYWhu|~Z&va)bu-F){7 z8cS6#7Dp*hkyJi!5o zJ%z~H9uLvAP8$g2dW5JSV}lro288fM{G`sT&FA&m_`;yexsfWq;`#UrZUQyw;7o*av(G1xoL8BP@h*QB2T^z~a z0FI}N1~Ca4i#1-yY0qoZUK!e3c;gO5Esb9c)Iv%Gxdjw2NAbd?8xS51IF~)062@U# z{nJr#(A}&0v}=WbQxxvk?ia1_;gD7*IJ^df&5nu560HEa?5{%BdbCfhNG7%*pu&JTI6-YsZkZi? z(Fstr?S)Kyvg@0TDNuAM98~lS9i}dYR9*GR;o5KGPA-JOh#Kjwx-awX-%U-bFHRUX zP4iv?VB0Gzc!Zo@R%B)M~r zp0@ns6#0AX+>JnYw4X67N)NzaN#Ye-hBmnn}JY8HMoH)_MsSn|sis=$Ef6waQg|1Daj0c>H8Gz_Xz--|S;d2LHr@D1wy@kah zhiQ;rEa^_So`oZVDVO$eN_BFma`x!SI)fj5)Xg8UtA5BMe$gm;)PVC2Z(#0*;$Blf zk04-#(`L}pmK1+S6SV$P(tw@$IM{hhCAf9oXUl5xvU#4WQaS@$vc5=@SV+pqj3Ra` z-`o3_wJW&lT?Z&yuZHKAmfcaUM~K>!CKQ&DFqPwh9uJI{-Yi#$%1AB%p!1?9>`vc% zAHr<1D-Hqau!BVKeRS`BUx{$nsWh33!Mi5OLWe`;AMbyhq;Xh;zCGIV)2;{AG5{_P z@Tq@UG$ZlCvO|ivNufdaL|Ww$8|3*d=`<=Kj9*o0ptW~d%!{|{fn!GmZ!!T(PyA(c z<)h@g!8F^)U6mKmInurbXTee!H-zj?bIE(=UWuqjBnx-xpud%LrgZkU<`ZI1)os%5L!w+t24Rd32gVp+I5lY*~cdN=6IyN6$((*RD{% z<)wT&L8lg}Q5{zGK{lakG75mJmB08QNJIp|`H*zvDAYD?3Ug+-%JWzqDF!BZ4jOZ{ z%Il1@fBv&S|Ng$9VE2I3p#p-05)AsY2_DaDhiAtbVNOU8&sQL>KDOF z`+er75&21B_nOAGbM7UQ5FEK5vv7>>3lC4UCr_frB`Z|oo*z(6Q9nK_8K=4 z5M4^SvMf@?d=X6u-}~l=|5!!$A@`Ypn>D~f7sAw|S)GN|bMqOIt;`&(^HBAEbT!8x zl?MY4UV-Oz=;V4gH6Z(sl;?xxWK36S^HY``4wjjiepdNBp&6xw#H^L+49e8}Fns(f zq~fN-CAaql0{MSVlsb8&BVBSZh052JLu6vm+~nOSsh@6LznN{m<~?SrtlD$HV`z80 zsPa7Oi;2LYCE0%A0HXP9H7xTfz|RUA9?*>VeVvlr->9k9I$j5oXt4~e!m)zoG*7BB z$e1|Q4nWLwAr~DPx(;{I!oA?R$@TNE3!Lrj`MBRTL6e*3%j0h|O2VRr=L-0==3cidr5cd-_j@Zh9cw=u3ak44-@LixMLUP!W2Oc*;m_nlC6b5dmPTowdlMj zXiKLz-cAqcOq{C|(r&c((0so%_>4TIt9Gtdfz=;%91K%W@sRvqCj z_i{#<$7jTxH-l&JQ|sCc+FYE{5NGpb?R_%Ly}@Mzn*ft4#)UT28&Wt~w8+yH?eb56 z%Iaw4y4?fC#sl_l70yY`2L*38xS14aHUU6?HLR3e|?<>buCvoS+~w~ zgq}bmtF5Vr^rpQBL}4)@)9=InTYH9uICi6fu=e-H8-(c!_>=6aRIy42**Nj&O$N(7 zA#bkY%?E2QX9uktUT=v}l#d;=B}CsLuVvQ5QWn8EG8}P~LKG4C>v?(hf+;cfGwNut^=^%`er*-NNOF-l^1qU=f@OfpszNRm`ahNbbRuHu-bP`Yi$O}Lred7H8 zaJg>WFgb#HVRf^H`x5fRpDa!TY~O@qMc-LY#8;WErry{a?YlzT6e4osg|o0(m}dH( zS=Z9r6Bp&&!}mSpgU8mbYsjnic6xSkULJjnT$(AB#bShTg8`xZGL zWVbe7#`!gp&xEtUl6f74>=%-jOkhf#l z10b|(P;2kAsBLvIch~LMUx1sB_KDYB47se8#R$`2d$x~K-Vbb&mlIE_zaOOx;Qm}J z?wtyZJ3l6W14IGtRef2HZehIJ$zDn8)-wR|Sm5mVb@2#*zGXjhihIwpR^F#LUNXsC zRPONAKS=%?UvmcNRqg1;&OhbEs*xQ6F4fx!_f5!rS|f-U59VstBvi7CIpJfHXaghZ z-2#4Ke}AGAQa-lnFkPKfhO5{)*_@haCv|Io9<gLnqTVd=wj@jMGs$J%-9vVQfi>e95<54nd&nT*1U^+tUq-DCg4n<%SYAjuN?UK ztK|9_F8pePf_d+pi8l^dhxeJN3~uL*Q%1@(+UXBBAi~1MwT#%lCrdfHpN0h{vL~~& zbZ!#8(%m`YDcQ-((|o!xtrwT#Yqf0r7Ko5TigK+(a^~PCxdf9juf0*ICW0b95O}N8>6pI?rVC<7@Swl(*r}e~o8PwSS z0)|ts-^essYM5-n?l1oK6uxGkLTKU*)Uu?<@^tu^nQS>}rl)f7zRyeR=dkUt6BRX{ z2x-IN)!ZZ`8)eKlE7}zWE;`Bg&0YQxr(6ol+ugPJ^Y^i>D#ot{R~f6jV?*$wNcF^r zicF91k5HpQ%`n}PW`NOWHbFOE+$M8c=HMROaoFhJhnUN|`d(F4drgV<9f}cRY(?k# zN#;P{NmSdS?$Y+dhUFmi=-A1-+NK;6M#4?qs!(!S!?*QBXHXn^;^+zEt`Z0Y&+}j z^YX}2#sCL?RalHoQ%q_8WJ!zkZCG$AN;=*kN7cIe)i(*P@qY&?M_4?_j3z zr`qEEsleR~khpSS?Lz(!zYkbxo8!Rg*b;6 zxVggGPgT9T)(zRt^8pfhpO`hGp=kGPZ9AikipoHmRpp&Qk*v2OW>w_alB?}gLGjts zeRHsM*3# zliUKL<_Wf-6|;4AsNz;a^KdW_<<#^FAMLd9$c>jGa);A<_1JIwIqk~6EaM4pvZ02` zgQeM@5V7D6vjtN=^YoR+Bo4_M0`3_}gzDz6`9!s@C48V4w+6SpIf=haUHC?X53@yp z#V-pBNIpZ;*X*}oGb0s7^K|2l6Bb&gopTX(D*Pwj^@lwvq<526Ha@CJN%;k}J>Cl~ z9qpIwXCiMD)?hAVUNz;(^YgK`kIhrdY7>scT;}TJCJt@<%8qIz zA_OE6uH1d{GQnS-r4nl+O8Ue_<+P6fda0!!pj3PN9zM(5rew+&`;TcK$Y1>AZ!v~}Dx*?cNVva0ugxT(4)j?@O<%){~jqZJ$$I68jg72LM%a=b~?g-Ho`6ZfNawu_Y6ZPiEEVW(CK z(-cppA$_wUQ`E+~b(olhdX=4kTdsY~mq?j|=sI(tIxaKRCQXdHtuQlq zJ~#cbDRogye3LXC^Y(N%PuvQdx5o|drzGG;@!sClzXCWrY3IgbhkJFDPmFW6>nwJ* z+i=(RK&qXcLV~L03bN1YYU>K7CMHIZFi}P4nm&=rW!@ChTsTTG5Pul3G_Rm?7C$&X zm~c(>wzYH1r(STm1ll6I5(RZA`E>X$-wflfBLegu%m{ai8Gg~GeI;rYc<((bP zrl`3^jVXv6QEi%aJU@NZ)cP({E3Il$OFLwi+BciLX-Pjq6H6zLM@#uFI_-Y^%9_6r zE9{;dxoc-!6LIt^{-PUSg3gjW;_@uAMRV7J4&sbfEA#iv;ubO#$&cRrW>f7N%Or0I}%Ilt2 z1b7uT6NU7$Yq~~@m)Z8TMyW(n;~%$Im=UykQ!ndg$KHYV-tt$E0Q1(%58;cchtsZ~ zaj+ORLFcaZl;WgRq3YC4A^n1#T^`{Qm0b6Q&3IZKxlJi0qTsJUE7oEK5J|5fzWD(F zWo=K?IKM1`gu%$R(eam6q1Jn=?mCQ{w9rueW|vu7#$cO~v_*=o-c_UXuG7?$I(4mI zyguV>u0?^0HIdQ<9`&I^OiOstEvx16VT@dCk@knTdnbXwiW;)yb`DK$& z<$cocu5y^;m}W}-MR3sO0n(g>|KWj)LGv8jzy@sWVpPFFTeY&YfcE55mRIHStQm9# z2wvSZ<{EAe4uF>3%l+=M);seOP$i`~j6sCW)2h(CeJ+B}%iL40WRfUqwi=Q_7$R|K z${Ta_u%=)-DYyMvKrzz`E6ZDn5QCILZ5nFwYPt8?u9uLd8U&Tjbgq*-Z`|(t+1~GM zBE82nAnf(GN%QjR>nwmrWNGH*hzHe3G`B>(W3g7XME9!S*4^^oab_}a?-FQZGW%Gg zyw=SL?3~*=@^PpeteVW5Vst)I50oBxz3$HdH@YBQRiU^g%g49&i7K`?J@MDDph*+6 zM1=|P`ADL$v;{E#G`hGCe(A0^8~a?xiNp6nSIEu}R!<7zos0w|VH)-?Abr^YXob+U z5_5yvU*>?h?AJ~?iZ0nZiqNWQ^$w2lYnM^60y%aU28qfhX6zi>m%kcW=>AqLS7TyX zm<-dP@P$}K+pQ0O3Adl@DWcCS$hZfDK=ftNJ3kM$U1wY_Cp*mvgOrX_x*F)K$_%Vq1gnKU~hZSm-}o{69iO&WRll=0ru( zZs?pZrd$|2she#PaXxak-%!Qpwz)5>F=$pl)gmUddOfEERem!usMSZHdsX@QRY2 z27z*!%dm(4N~lj^9wehXf8V?P`;o!~%S~=l^Bp0tpy7FSGRsIXa9^>qR&G8~UAC=I zipki9BXqbXUKUmZmh*4=?bN@l$XC(?_UDoPNM(lsNaUjoYSyC60vnE#YrvI(pyd3-bKW6?`IRKmp-|Viy-uYEOt$Gx$| zwEY&*7l(4mAunsiTI(Ds1^Y-IhZK^>EJ5lNZJS#iI`ARqNc&9h!}{QznTqQBmL{OE z!cEeTvuksi#l?=Sg)N9#ay;~si=mqNX5C&FtHhASDvo|;=Y@{A!w9BDv62p0vTjkk zbtAaAY=@^@r)Rrft#0tsS6lROcp5+5uEGyWp%zNiq(r8BAV-b(k9gg~)I^0{n*@P2 z`}?}J{F1t}Yoc#!0VjZNRPGF+Spr^AE53Q;@9+Q1j0H#)%8K;`?wtOyNB2Iy$AFMJoU+jYQSiU+CS<|A8%b3*W)CvmJF`6zGp%SB% z2x$zDlzv$K^*{cOK;ldjgLN`qE~1j?J_{$S%nM|ry4*CcC=loB{QC3gkc?k+7~mnJE?mR z_4@cXF0LSE&-+dE2tU1(x8-JpozFC157y@>&gIOzO`kT3Yr9!K*>tg&d5|6lTwiLR zD?alofD)w5xfQMNs84E|)XaWWdBk+SpI2kxm+0e&@eI4o@A>6KvA6VN+2 z|G0bq;{xCnVG=dz?K=Yg*DE52dPL_5vt-k5mx_cnln)EPp*j~=)J#G2`8+tkBt#Ri zS`~<#cX=D~Zu2f*Y$quk--I;v?mQ3=Lj^ww$*1unZW_uTwERgRkwJLEo4v39W59ne zoIUeJjqbT!KE2HPG93$0H0^FqzJ`p`*+m=K900WC7Pw&tlEaJ;2#M7cG zo(8@hgA}vKE3mqoHo;PGd#ibru3{_q+5Zi1`?b${!Xlp{dC;P}=o1Dn(;;R@9;F&L zcM5DYVX!Khci)M3=y!=X4f7v%xxxQdQ>w`bZy(|9a|ivj=C3{E|0!t!6Jj$MKbF3iyu%}>j_jEPQN>o6G+Kjn?=UkWCCJTt2`;w4dv?EW< zpXNJdz%29nQR_szV^^?)EB_TZVhL-B(aQee5_Eh0ZzZTq@$WSRMa!?1%lN6XCr8kr zH;9_{`DEwjXIUNtV};PXI6e%1~7{xFPFtr(7*m2;NK6Knw(rS-0&{=jCq^!=5Q0TRdDzVnK}*2 zyS6d+4t~gKv45kR$f|6GYD2$ABh_*UeWpQG_`H)Z&W_PxLy$OGNT5}L-|@LH-_0}~ zh)aMtYyer}s3j(@L%VnMTh+(^GtB>ZJexIB2NzcApbac;OS%sZ3LIFgDh4Zr&e%1M zO&ZW3auv%4cGH8|RI+%gKGPjp+`tvIR^?Dpf7DX{xtsL-g;aBEn`Pc3Ht#2lwM&+R zsdhR=W>+okfXvWC*JAAewoo)tIC96?U~Fxd;>W8XkXS$Aq*T0m=rpm8`#zWf?9nSx zIS#Tdoko%{SCIah8IL!U=`$(Bv;+DL7oJk@dDy4Pm?H6NOoZ9>BG};5TsEO>oq&hC z14R#u3>95j!pir~t#vqOpp;p=9{TJgO^jdFg%mp*xVcJIew<}ZfEwZX&1*#K>Gj0C zaUZLEwTeKTDgP@aRgVsP@D@L61Xt?dK;enXR*lE)NTOpdP%Ys`Kuyu^GI?`c`{rX; zZj_klVIz0fw}8;F4a&&mlNilzKLlcUqQ&X&ZFX}02;IpeWZ_fsI@$1CfIXyOT|#GI z({5n*dSMe|l1%oJZ6Sc+{U75mJY~*O$K(>rhBf`y;jkR7Q>VklrvXEo4e1VrG`hS4 zD(@Pm#Fo}OpKnmsUmRq9#sF(Oy?&!86D?R1%%mfoQ~FCql2`YFB`_*%F(b&4Nak0& zLDF2?hTs z`1=em09|Q|$Tyo3l_2y0Cc^L2HB9-q+pcVEVHOp8UxYL6RHfmm!M+=xoaWjc+7fFY zk6`2)>>!rKQ?HbUG%sgl7}$wp#?f-%kvf{lk{K75o{qn8-p()92u5OG)iHwPl3L;` zs;kx=vv@9o|3s>OSNSNUS_O#iJ_FtSUOYPc0X)4ktoZ6Mre-*AM}zCBlx!RZ18%(s z2!XFR9>=}-k80geP5Lm{^d~0J-rW92Kx3vE5H+Y{cqJX55+MbPUe7gZ3DsHEc!c!9 zw|ln$P0i4DXs`mjq10zCOkG>EC_trjIK#Hh^V#=>rSY~FJ+lc>k#wo7&i`8Rxqy2f;&!0|REt+@ub}{bo%XgD~r*9LW`JpnXR5#zBhbJ`-wrml} z@B?qv?8sP56r%X&@l!YULgz=Sn^oBt)x-?lc5r;`pSYAJ-nh;>{X>TJ_osqQ~q!)Jex zLE28RhSJ@vclf~L@#X8KU3tO)Tl^j2Sqd`iT&-#`=_p7QhR>Ww*gWU;4o4RU*}TgY zE17JsiE)Xp9yFB`<>MyTt8-H`E^q5s9rC2k+r(FQ_jNII$fGbk?pczU%*Ar= zS#HuW4^$}R_kbFVUvS0EX8o6bZU}M0Bzf|gVv}Tb&-3A6up%<6YfU=l@16*CHmjv< zG)KQSEzZvM{~I<6fUaSEC-|2zk$^nl8qGQ z4hvvTb9u$wC<%-dvj$F+@0bdf#$H~6S=Ur_uT#e~)a@@LON3eKv1(6)We4gD%m^1g zR_HZrbZKcsx`Oz_BbskFdr_pm;B@}(Ued2Z9Z~mS#2uZ#0+qI5$&YT1Z`!qs&ABXjxgYVFe78cis(Eo1$G|CDa83q(IaZe_O;?IIm1L4W-T3QI>k< z4x(g7k+uM{ds2)h5&0 zIydcOv~+4Fe(wB_1@k|D{1>|S^jq?1$-@5iYd;&Sf^Tl@7#qmYj@ByjU2Mu)DP&95 zApi<@rj>GL7P}8JMcxagK*7(S|()FR06>^L+?_7wjMx^R|KV~E|LyCz=}7ap6=s=t%$h9PIXhM(wJ1_x6F06sI5wHk_d?C^ z@zhe&YEf;T`nwJ{sRD+cNvT7m}XS)3jxb}1x0AL+6T4WMF#QRRj+sYhf9WW^PZ-BZG#hO;*x~nnfgO`l;Ec+8AKJ< zpuN7j0#Q?X-pjBniuv89cnpbO?J^$#fiP|jrrwgYmA#e8XQ)13mhtmh`2<Z87ov7av#Kae_O$&b)I@e!+RIVA3Q%=lB&>S$ z$ZgoJDQJX>O0}hjlloNT0gzCd46543g;vegR*ppy*hv#H!~sTQSWBm~o{oriap^$5 zitEUvt>*<_+C&D2d`(UPXEw(=sVe5*PQ>ou&4A3eoo6UJs1cPk0MdW{{D%pWRajq7 zhUB!2j6zYBOrad?$Y^*U=y#35frtm@{M+!X!dv~P^RkYI78L6^gtC*;nOPq0@U|&? z27Bu9VX8^Wi5U`4`iv38$LTW;IB`>#Zs4i0%W#+P7es0o>WDdc17T9;fY?pfhw%nZ zPOL6EDOw;9(;%Vf2~$nE7=JpJk7J#D9M9~pti~VlLG_UH(q!N?uylrREP&nvvWT-# zyXE8zfbsY~!*-6G*#39+qVlAJ<${`{O+QR)bD1Ste_eE!c0aH)`nO-t)lr0)^(V&; zZ(R=FXFB%hg9>fVNS&;4Fq)rrJyfb`wl9Ba4wcWeLk zb81SwYU?gtD@ydlUqFdRN+AvCAp3jQ$8h|nDm!-G&GSk!AUj~IT z3^R$~>Wr!_`m3^~=kV6a2@`%j9j5I{%ay&Cv`Mkz`$AAfnKogGhPr`I#+G{r(WSQ_ zW{`rljvKRotBp7yHQD_|)5%C=A@cPuJ*ued?+iqwX z6ju7ktM_p#*|NFcfoX7gdti86w@iD~#8N0ZYyPza@!DsbpU1|ctPkhkRc2L~t*I65 zV4Gu38syc)b*#VPXJ+G}^#&^8DWiFOk9#s@wOQfc`C_ zl4WXRyy7k2Bg&@eNbX|XMGo%-S(fj`PEk^uaNnWF_z{ge5J|wI&$n_XN@TX4ajpM$q(ePM5YK?pgHbG2+JG5DBEX&!!I#K$V{W|sbs)DOc zWat|jXp|1Nk7zaPo0EbwA>UFr9~IF5bry)&X^azw9vn?fQGU742{_ew+knXfbi(!z z>{eMxcT9EN>=V?k_{gO}`mAx%mUTF^T(zlSCLmvpjwCjNM@YmDbFM)AIz`V20TmaG^BjFPh0@>N2zO7nNN`+E6lu(6N1Z+ zOW+RoV~CE>Zs}8YXjxWk!H0s08UO7Plk@CSn_YZ3-E0KqNuepBbS}e^cfM5yHpuz% z2t;LcGaSGHwq)B$2E)lzP8=gqMrZ`unK1E;t9rV3K0HWgX#4coymL}6#FKbz1x z;9c~%kUMcI_wx;~LmHb@p1<5K}IIpaSJprC%ic)mwVM^^Z2rVuhW zIDo&&DAL5t*a<9`va>~0HdO(G90y+9R`O>S?75AXi7=KwM0tHaFaN4x_~1>tbiOL9 zM}8g?mD#`|Q3MVx$b7shz-QG5pa0xV0Ko!Q0n#1T@aa_V>a0X8)Syh-@Ove{%ngZn zhwfo<1Z|J3Fr-};br(T32c36SY&vtnFJsSlwjEaHPxENp_M~WI^^6?G7uaCIa(?4f3j!pfvz0C%vsOTcMc+W%V%Ft}kyp;qZ z7HXVcrWq64SoT+X_Swya!6u16iEN$qA3h;x+4CFyC~sb`Tp7Ye7cZ~m&FElpj8^() za)E%x5Xt<2?|{+x0xEKLegGnfkltCs6^ z<8Z%!ir^`3Dh=M^+9jLH0Urm*wVu|!loeoi- zAeCyvLWYRv4j>e_b@^N%UtEE+lkuRFOIDwdS{PwR?YW>qYh6f4?^nh_VNYaramM4ndNJmvETP_9E zW&O+r1f#>&T&{A@%B?5sgK70lmaQibp|Y;8@58`@$a-eh(N4BBCz;TcF$4KB9!52+ zVM*)`AR>1~nP+Xf>VzeHCAWZAU+BHt-7I>dluCM*wNu^QxTxtUxbaZ;d{c1*pyrFP ztHsK)yFTBfFC}U{9FIA}bBNYHg)p)E~TU|`#V_zRoK(ls%fuY0}D&*-SJJYNx0SG3gWmceu;*mwe6taod4Coqkh(X|+Rf z&kRi?q1nq}_CXDv-t6r(M9VM1 z8Ct^UORFL|29QKZe0>V@R&gb6b2nse%iva;cribjtp^xpR7HK|j_Tn9V*lD675z~; zU=KC-GBv`M3}rP9sji92tIHJ_r=>3sR9A?5Abh=onf%)u@Xvx0i*^p81wpn)TCfP1N&L`G{!7;;UTa^4+Cv-jLyW{3ZoWq7MDU2$c-tH76){|<$y z6G{)epzV%uE0uR}bd$-8?^1*fz_d2d%ew>>(Antv5X{xl1JvwuH$^~iBcpe>bHQi% z84B%52Kn*G+Ed%>#3c|w;#b5`WXPYk{)BdR^DJKkwlbg?RRMMpUF}_BzAMVa3R;>D zs!F1KQz${IMgXB_e^#(^D;VzlM#T)-wsZ+pq+*a=7hl9@^a28zFy)Svo?czHb1+ex zYie}4J#dCAAmm%`kM)8wQMcUO*{7am&FcwSBh?mpg_F5G)cy+bbRE|)McbXsNw|5K z*!)gs;@Tz6CM3Sc&DUdm(u31y_tFi0zUf+6h(t{ny-TbAUs1>7Jp*A^HS;HtlNl$g z?#LM_pTI*mY<_^Gl$5nYiCSnf+&A6iao^lXFaV+#=U+(I(r8~KkTiuzxX2nX=h`z? zMr~b6!e7*o15;JO6rx?eg`L+xg+XC5;$M1BWZT_?sbFCxup(=7^iU3+Jz44)Use|^ z#GgjVw5N{R&hDa59Pa_u(dUu9^}&bJdbe)KQVgyc7)h2&XrwP$B7t+F ziq@pqESKN6Uc!_}^h+lSYwyj3#@!uTw_@^P{DVicP64T%PCLz>69K}_DP++3e97sR zcaevw5%N7^AcXKQN$%xpTTvASHr;i3p-|$C4!t`}%*L={zR4z6_nd*Uiyc#Fw7t95 z8dHC?mD_E&JN(Cx!vgkWbzQveNMpXi_1JgxTo>L-<}COAL?zd9rdo&fS4hLO`BT5x zfoU(&dRgu)!|Z0`eO6^m`n7nmb8Up&xqv17eoc`@FKW%p=l z6&sw;&$nZSa+;t`nhi2WT9QoOp>zoG9)*v4zu*>azTie$_lq^3&AsS!nz95$%|WwC zXo*^Ec5ep`!t*EZQ*# zrrEGa8bY6s+(um+0>EDGgC?a6-Je#rkzt%Ps_;mE%hr%)Yt$&+m&A-zPXpj4yRx7M ztL5dxV-sxS!K-$3x0;BHIi1E97AS2Aj5cIeWwX6ZyTZ9DxU+6oH2`(Z09;B-?1T!- z`avylu8WBmt*{SB?E|dX-(K;)s%y*8NLu%ezi60r&#A2`gTzR3uXD*z)_`EQWpX*2 z4||+hj6<F^Iq-d5Db>fZ`z9~`E&8+ZvyC~C&3F7dHRJN~^v&gB zmL|q`_9I25#2t*Ewa%P90O=~|3PE;lCq3B6TfVnfdWmK$fh8ND#dxJ zx?(L|%am7&bMZiMNChQ8_giE0O~ijqD&XO#>;~$hLWNqY&w7r|p)2kc)Py<`7Ngw( z2E8flI@9G#ZX9*${vPLDrw7EBqo$QM;~pg4Ui^ovqUhZ}T&GXDyd^}gtNL&EV62&kcsC-9l8V3 zJu-{z2W`ogn@?d{k-={!zlI;^sgL2xKW9BB8wh4-#3IJuTzBRDSaI8j&#mb)944{( zowlX@`V?&C~Gf^+!NRiogL9#`4h?$XD?5Q7tz}cM5w8 zOW7?%q*&)G7=o-JG3f2Il|Ht?)u{DEHfv#SDTX$GNNPVaKlg1|s1yrSD>&+HYM!HT3$^Q*kuGK&Pd0s&h zV<={zY{K2XD2YVEq6LF)kWG?Sg`E#C;p+Crjzj6+YA^4*4LRxj=BRji!pukQ;(;;K z()WITO@5q^dbz)b!T4rh_ZsldI^@?!S9Z{ek3$cgybKE~*$W#8*8u~eih751lH!%> zDSL3a@6OHU-Y$%aPFnoq;M)B2`8-h(UgrFI#(~c=APc!lNau8|<6knOY`URwVfvO1 zUb(+=c*~`PE@*o_%`cIidR4Sbn6H)jtckidPz#ehy%z%f07xU2w%h zZMUy=G3wR<=PA9<;%;sP(DSDYL#)dp`yghgtW==q(Mnbx6e+^7}C^zT41X@MZ zdPaLFg=}EXe~?ct^8>*dAi#q+fz?FxS(uugNBj86$u87b6$3Jp+NK7`gnQu5tNp{z z`Me)9M6Lq6Pi>_nkD}m=&jYq7et9uWWh9sf!kaOgsQ#`h-`IsWN4%yQ;Lc^W_wJth zN&R);Lc$5di48cA`nff3T4V?yL=2iM3qEGh0J7(@bwzxxvAsp`#yaZq@`^PPHm0B! z>i2wrrorPD{&ui2^@<#%zvloY8k1_k7qGSZ;*-+NR9|RH~kcm*uni`phW~>U4(Ul`-Lz zsWNNCrjf#S`Hnj_*xk9-d8Eh7#2$SyRxi_|PpeMgLEGJ(=Z=|I4pku?H@kd!`<>>% z@Pz6Py>Y7SWN1@K{c3y$_*Rfbniy-TT?~n5>4|86F4}6KjG$yKS(4LUPJCZp6}y(= z6!P<~MX3tRBSdvXFtx=75nz#tDp(qj+dk43ej4-b?+3yYIU!Biiax%r6A?!R)*fZD z<}n`;;_x{6+`qa7mLyV5KyrrBkq+LRui7Zq z=w?+al+$ve17(Hz$+gamI(&~E$2~iTBF2^nA+$ZjwZy-^z*hDnbnESiev7|U#y;hb zP&yKGm=oQ8Li^z~VZP>I?gllPUKXFaEV<5g$53VUR!y{^@5QNc#~ggv5m`!J_rTbp z79fktkOM+BL$=L;WzXYFurMXv4vmOxuSu*3GKPTpRH9a{A3ZdfXs8~loN)K{>FkI! z3COC)p~4Te(*_!3?xM7{K`I~qs=FIySEg`(D*$)1K7aOp`f$cU257DfD^rE+6rU2L zJ-{qbY6Iwqj8D@CEkRGA@(zim9}0@07Nt;0%{sX>x9=g1a9{T3-C~P-ZO%QSqs;M* z^-CcXKLoUA*H5bbEF5)z)cZ_NreWhJ@92VO4*nS3b7*5t(C`-|cIEd7|%v>~Racm}3 z?6eq@VmX|1X3WRW(LyZI!rGtHC3D$j!{9N>9BajtcMT*y)Yx`yj{=Z{a<8n?|N5V$ zaLJfZ?B5z55BJgwgpj_`G((-jlRg>c!NI#!?=KN7;s1 z`OGgLlP80|E|0hcY;Opu;p$NqVZl{dZmvlf^I;x&+4uMq^EdWS_x||&nu`l75)=i} zm;HM?^u&%L;D;mhG=h}PgtZ`UY+v>&R8KgjxxXH@aAilohN&0pcv$ddx9&X!i+)$1 zlB?{$qk5@f$U3OKOcGP7fL)@So(FH$ki%5Z=YtHv40{h%m%=80Alm$9+`%_bOz!1X z=ER11yN}@Y*->0X`L2Nf#LXDf!TXWxoNBbmTz=+^;#2RT#WT)__v$i+JkG zPmcpJ$L1;;IQ+_#p=^Ug{KuoPas_tl^PY)E{c+rfkV0G>p97yg+4RR34^bTLR;FEv zEh1RfRL9{7xT0dk{3BYw4)C%Hu?A@`yp_>we-!kPA!Oq7D8TYvS-Bd<#6@OUBbQvJ zu}5T#vscnIh09yCQ(~{FCxc_*=sG-x(;5Uh?sbcL{i_1gy&-Msppsqb_`FZfb=K1C z73ZfJ5e`6l&LWY9I;(-+3(0-5kH<&9(a~tR*p=_Rs(bOs2HOFY3#)u570w`Hb**01q>V@7mDFN8gW@}+KVj5Z#^>E9P3Yx5~e72OmFC) z)J?CN$sXDv|KYj^{BNo`BVbA)A@<^SQ-22#o=*?r8e>wo0%j#aduzVaYo6z0SE|_x zD)>)L#f(Wv&n1dWr-Bmye!=dJ{Om0bC!0DoE~j>615h4cTrfPz>f_Ht;ulZ!NGAu| zat)mu4t{%gsL(*&EXarbIREbNjT$HufM7T=MAe8zD|RflgA4d-6YC75lBenL)s7s7 z!^_@)1z zt|WxPOZu}0ZksKDXE)lIrjk}uryPYDL}i<4j^E+4gGOt$K+-sY?&hVTPuLo8eD<{1^?k_j}V9Y`!Ix zW+LtBwAkxyKI)CA6pKe>He1u=XRH3Mi=-csZ z0@jv9bkc03`KC&3anyTjhd%o$jJW_h#ZEFK zJ8mT|q<(Ti5q}w#3(&)|Fw-g;2Ac8sdj4aqlTYCSqKfl3&&qXI2&D;;rSP%%i;ASX zZLE6#{b~{mD`uK$)a&u??f!OdkLk&8wAP?64}OfL+*yNoqsaEQ zd(RUE8V9q=#HLk57hZh@R%s>qp-Fk68Vw<}`bdt%sx|8CV7v+WlO@WNsOk}~q4KLm z=2Ci5uFhqSz>S^xT$x^`SX_YKU|Tms%_h_4n%?CU6Z@FCtv(PICaUsWnKUJ!=4i#% zCI~A9phzsqBxDeJeFS%?RIEz@?8%|;Z?5mAV_<`NSBctg8QGOg5yHa;&WCI~d*vd| z)4M2@dKia!1(R;uvKk+3ZUpjxtcta9>23u+iqHxpS2+eC5B}n@P)fvU(W?^o?)Uk$ z?y1<~hc-Dg1(Cr?$}XOiW*ip1xsKQ)_hb|g(rTW=Y78Eapdm2nB}RzDg%jVnV>$oL2C2&DdOdf!fH;c!Br#f{RJlIvM1}^ z;wgf?u9C$_w48jMxk+0Z#K^fF^hY%z#ZOzKKOU_PaW(4+KM>NbbOLZ z6hTT?H>1smc^7tjeRKce`f{`KLo|4UnZNg_;>|bbva?zz#mX}g-SQi7&kFh z)qifJqSO#|$wc*Wm!Qh5Wo?Kap|G;lyhe_3l?045tlK4a&CkZdj}e4%_~6Z}DIn$Y zyMi{VLaTqru+~TA=2x!Go%`rE&(*Uw&%GQITVzlFS&ag`YLgqY3ad@@Y)!R|W~p;K zL~hflUj29nui7vDU)jg2L(LikgP$IREHAECluVDkmVz!c*VMJ(D!?Je4j&v)BIW^p zA~|B`=a>1zNyDH~sM+oCBsyCPcW(P3eRPhs%GwNa4ID*G)~d_WhjFmfp;|&6+TJrb zQ3kgF>qh{GV4W}czkcDhOf}~VJ9y8L_A6JD0>w8sY`$IYw)xb6hI=WY?nQ}Okn6NG zpCJ*hKjNE-;ktC*t89Er!sIK}T>J7WTw}%O`r*usbWxCaVy%YdvkC~<_&PgEO;x+X z{0j`szq3v_1Kq+`VJyAzh7xLhw#=;e&p56@3Dt|Z@a{G5;Ik_ms**VqKI-p> z!!>=*hh)@zbDu*&G@lpMapGaQNw4#FB6_8$aHFQgIPNAcCD%pG*yZ~a{l z1pU8wd+)fWvUY74^-;kBDi(^6VQ7LBk)}Xk21cq7>5xzcLkqo^K)@M6EMSllG&GSW zCG^lk6fg)FkQN{`>4XqEA%x<$=RM~;&phXS&O5)~^SG)@ z$(=W8&XX7G*gzM$@6gWGKKcxwUhB^_IdV*DwOo8`I$wWp+U+hE3V0H^EbH0?#W44M z^JpC%!`7e|NeV1#u313Mw{lZsnL%dDu8FbyK8zwzkfAZ5MmAZKvbxAh`f@VbE&w*2 zRhS?Y+?;|sm`qM*vNgH%+CtBcxwZDBcG6_4nNj&KJ;hhbOco!^M~p6J8T#j%+zt)d zp35=0Jj)jp)AE{CyZ*mV6puf?``TMr$Fu(ZFu&X~lrOWBnC>tmA|_7Tol%5D$RwsM zI-M;}jRXgF3=)+?0+G{;Fdt2H|JbJjkN(CshJ-M|*yw3?xx*(i88>)a$vLhM8S0O@ z6}S0;KTcYRP4W?L9bs5{;G=c~jdVunSW6L*fU2scG!!BO-IJU z-rjc2+J=r+yv)g3Dp@WE`g1M zO(NCGo0fsfD%n1wY31DH$UG&h%vf8ZQggBp*CM)!?{}rm0;;ERK_V5*Sp>P$HYEI(}-s&iH1S$3% zv&opL_hTAejF~Y%%ctFPDgi8BD!cEXI8a}YlaO1riAc7>LgFTD$F5GCZ)x?Zo%95z zxIwe#T%~@2)3-0RDs0&sFx+CC7UHG5O|%}KIseW2sZ1Tu_|NWN$liL_Pdy(TeXiyk zkn0d5DnlWx5MEPaoP;w08j-K@8cq`tJu#(g-T_xbb}5$m4fw{K`K!a1_Hwy$D7HD% z(~Eo8hkPmB9tls!6AbFu*@DrYD^?F9yzcFM5vM^jst-sr@teB0vMv^awfG`R4!&&; zSd6R_E18YdYn#i@p~vHI_s`94>Fb6|Lv&$J+3>k!*n!ZodSITE5A#xB26Q;9yw>X%I$Buh+vX z+h0uUwrvHX-@@a}k^QnY{OnTN*MZ&UH(_Drth07Lu37-vYLpmKZNtHNI%cl74V8gh zKJVDjn55aTS-*gExF1xD-9I;$Jf!@OE`P(%B9 zmqWo=uVx=sG9Rz(N@X0qkNeJ1ic~Zik9;E&bO>#-^5g%wP+d4N&x#o9wsl%~g6SBa zB|5&7V~CzQIL5W(d&B2~vUv23HXwKUxA;i7o&o*tLfVS+5R1Olxlw`5z%bRjBD%c? zCvL(VNmad%(d@7hK()5*QQ&Sz^!YGuUez=cnk;X0an);2oV=cy?Yy#{zi_otpaTW3 zj;y8hYvM%f{c zbo5y(TkBKFAuPx=#n%BK-dsLRIacr4AM0T$72agVjD9HR&U)4#ye+Y_YJw@}xgJ$m zBspe*4T}U9Ed+gdq~X8W_j%)5Ij&C8OIaeLZ}0iYGk@q~-e|akt>>Q7K)2y$s?iN? zTaR5}-?SC1w!QthYi_=2q?FX}fy!(spYS+;B_mx~yyj2?G4G1WG)yw)+xJP8or@bG zFWX=>*TY+{CQR$-K%RfAZ2Y1x%Jt2k{v#v7xjX`g0yUpBLNH}-V-~Jd) zH}F0c18Ub!qzqE46tXD^JByT)kTOuEDuhJN{ny0z@At0ul}-Y?yDik z+=A0xYpg~o@gm_xa9N~v+Im{`SdLiA@=gbQe=@88B18Aq20G?gbN$`|ESC{9nKOz@ zXsDoAQ{%Vi>xX~qHg;!E{To^`hi#Ei=9`ehfy z5~F2U@L4Fz>75eE{J{iVRCJ-=*lIc^5w#LR^?Dn(G{~dmBVyT7y$7eCpZw3lz5iC#-~S#L-g0E$ zSMFu$xg3ChzLmI`F4+$Uut=@xpy|e6OJ7=RL99qoFsTC*`p(h&v#GrULzUT>u4rBW zFY)&8X8y8t;(C`iY0`BKp7do2%%AodAUcXp>1P=xAE>HYDH?+kUOhT^- z*{})IDaWxN{iW5vxZp%q)UUgE->~*6ccctHJ6Rj_n))?{*ckZ&HD6aaUC2@yoy=yf z@oK(B@9DCeHBb(hMK+2=pN$hIA3p`t$f1*_^ZNjz2T!LZmO$#*J=wpuOrB#nxwM9I z*RF4@tQ^Lg5VLMwwZ6FL(Jq+60Rl5pTeSO^yB73~wO3=j>D{Xk85i1yF_7h%ks#T6 z?Ly;JfRs1t$q-#e)29p?8Emkl$t$ayP%6f-D)JAGa7cTY$>k0V#1n8H)h0gZ)cJ$r zS}oTyKWMexaPv3=^&;zjeCk>OHZxyfP(&cvs$=E`>0$#0dic6qpz=Uk$i?`>KWh_R zA2|DrarDQ9)iGW7Zfm0%r!w3$cZ))QFzOZ7q+$!Tiy>0;x)+-8b;LRxJi;)6j3*1v zEK{SEBK(;BB%w%W8Yqcl{_A**R}UkLP!p?BD{u?v8)yhpY|L?Rn5czaG4lmWsU^`oxEqp zslH+I;qpAr@Tfo%(y>q%L5zxvn=wsxlDS!TU?jC2E#lEJT zdNrSdAJ-~XvT#LP;EuTX?b~X)xQ>UVnHq;h*1jKh`30h%6HahCOOMW~I^G{+2KT(l z5jThcmpo6oF)veOnbz79o)@Er6y@Cinh^OpJRIP_omZW8_Oq(NEAtKZuBv2U@YyeyOuUFdJ&M@aRLIGmZ?`v)L9ukB6R-E$TbG18;D;Qu>T%Tg=mWy% zj{^&%vrbRO5{T_a3!mK6?Si!0E3B?gksIFh)m|jiWo6M@dXmLAZ1fJIZyIJeu@@g$ zUCz<&>L1%UYwNrZ^-E*AobLaJAA-g>20QR3tEKzftv3!W(ax1t%9>hIIjUC5{*_Hq zp{$#3wY7^|q$z|HF{u4s`lDgh>#BZhq2`3f5#zLm5>`HmvV;I;54TKTbT&`(#KHiT z&n!WvdU-moW!Sw_6Q-ert3R$jwaNU}CN5m3p|#X0O0UFa=N<^YDQGX>v-Z1(60Y(F zAI2@7k1n4E0$ItyMh`9s%61k$DJfr8DW9<8nOA&`&2I7g>gh!kv%8OK$(}jB2~Y*u zrj13~ece?v_IxigJOjOO#%;bSD)TwnM8fS+0tTe=-c3 zkNuMMtjI_#LV?Z~@}{1H3C7@eXzO@{xqZ zVs?d%#3bm`BhSlNvLl{RqG8Yb)O}MitM&@e@Ez`A473uXfd60?>rsQSU}FcYRuMZ# zE9rKCKJ}pFNG1Y8n!MzIK;*1ao@j|sZf$ETEyN3SCkq`NAA9PJfTOr_GCIAt`#$I@ zY(uA@6k;6ltR|69PW@zT8^TTkWc;g_Y$cz}DU~cip7`ptyp*C5vqCg!qz|K|E>?r+ z$6Ppw%hJr&kF>SRQat&xx!a{2=l{CdrN*bc+*eLK$uPhS11`q@0d6o5;X-LvSgxrX zb(y9+`vWmY2oyIsx$Rn{ttF#rl{43^op)fe{QT7xlwluLaWJ6#IOzgw;f3+WX#0em zv})s`)eMeq+SeFyQ7*a9qF5Uo0iN3py#}NvYe*J_`}?axKDSXS%S<&i=a_A-im;;h z2-CupNoY#d9jFKtt~)OzRGTEH*OE6YN_ zzBMZ3tWX3Kub2{@0c9uM1=BrI0B~2&WWqr^9=oO88=or%WVd*sKAnptfH=b-lV35Q zGySZ(8Q=SUxSCz+zN*paIr3pgMWgC5c~2bqlZWz6^BkrALvE_!2N6mvP}%&QnMSY+T!abZ5R3})_n z)6TjiIF-DxDO8jzTs>G~#?C`2plh>~C27nDEOGe@8OK(+0a)g+@5#AQuW>Aq_iVzK zwy*u)IR*{N5KxB)Ndyl|q%Jzx-^yY9Yw{SZcOmYnYOlDre{$70VPGtLA!eks7M*Nk zp4`zIp}vC3bBikzHhzTx2~1v}^-E~KvUpB?I=@cWNUg5ESZT3!`Tl*49ofKufwlc- z3vnh#&?K`g-Z0i!H$BKUzH7F+zWaKu#Ojpfi%x2HIKcC+Br0woHy<;&4D47&m;rG2 z?cJZ5Z%^NC^4W?5pABbq2h;R+BIR5m4Ula>F}c=yKfBecwwk0X49nZR988cB1!X=?zcFm37fZ``aHOU;CEpaW@&Yyo9FxqxEHN1B8!DZQl{vS{$^U0N`i41 zliVkH-{@Wd*hus#w)TvBMEyQ37c}uv8mQ*j6Q9}*@0LyklG+xCcThB(mLgA>;i4UE zjIDeU<7NGs6=;vmS&}0_&@=|f1O5Ca7kwqt&)e}F5;=qG(YsQ-^JSfm?z?(7BFrM4 zUOY|~lUNno(kaaD=mQ{sCV}BS%bu`9$+njg-#H9yd;QPw`Z)MpZt6))FWrJy9)8&z z)xNdPFy`xM8{pv_1`7yu2kuzhc#xY(p-w$;2+vtb1vZBaUu|rYJo;!n5bUMLh>g3S zj@C8|(y=Y|-Fp&g)t$Yl!W!im_&Ak0hsk#ImG>a{tm^CFm5}?6fhB6+dLPNQ&Lkb( zpE%fURP~r+7zLKPBuy$>VAD)6^<&WFLv{%TtQMxz(Z_SS^xIepSxN)#$I7eS#P-F@ zRqVqIi7{%-Su>Qk!{rulbCQ1O7X}igDst;PeE^+s;)~~k>pX&II>gDhw zrI6_RR_PE>bh8(;8)%HAW(42Y9rmu3DDU$}p6V4cpQ;+Drz3#VhCg&Y`mg-|o8PSZ zW3b4lC-In=0V?gV^Fu#9cPC?TnWWU>DeHkz?f;6sh=VJ+(5GiPTZIp#j4a)~S>KvM z6ja~b53$zvOpwPUFw+Nb>)-@mLyft~Fl1u9b8}5r%A`-rts;&LtuHcL`lCICTf%~#hxa#Em+N%959flLUFh={ zfG#Ua!)nI*`E-brkG=jJAzrPHPW;-hD}2Y^Her+c06kvK)K+FHm7(x-)h2`5ejj@KU^ z9>|#O=k0ZKLvgtq4AU1)aT9(V5)v%dZhjH#7k%Jwm zt~kQQ%^~ClWFs_lCD^1T7h&bD>&v+(aT{t+u8YfV{q+H$WfR)yXpT5Echa7uix*Za zZK;F|W2$;h6lVi&J0lFhcgTz)CaqKWW&9o3%;{t8S-l7pseQ0E7gJw_8L*zdVG$2U z1RKU=eV#3DML6*pOa^0Z*u^>noNtGP4$5vg&*2(1ZXvoXYR?D@Wwi*QMt+gwe-}n8n(%wvE(F1iA*W>Ab@pJRZ|j+ClRHlixtEVv zH77Y&QbAIa#@RWn#Xv7Wx_iyLrVKki=r;x-%z)xpI?HuUygaqTl#BamhTs0Hem?~0 ztM!vNAP%yLgY!8V5!ePapOQfXbE1!PzeJ2cdaum~q9>J)}ApbJ{=j4ue5u-;+RB=3(*xRc-J zgrBW{SWGfGVk(IW1kvX_J0(q)ZO9rXCm~%uV;dr&33b(DZGDMY-z-Gua?fHUC zDNaWA#)!>>98WYpXO2ms0Kj2RBks&+YLP1Jez(bbf$%7;7PlTUTz` z77!pH39q&Bd`9A)w)Bt|7jYwpK{fVV9PY=T0@Yn47T3v5_2+sZr=#=gczp1`yeUyX zuLHyjRxcg#cArUE?&hUDhi&Y>C|zAO3kJSw_8l=m*|frnk3p#`F^ zkjo`kCe>xt9~#mh13z=wCFvGTrebIBKuFAk%$ti}l`c37quHyMtPe$cJjBZhg8WUu zNNvS%Io-){CsiP`SOY8xEOOsgnSNRF24q$E)38FKsr}d!2GpUQpv`eziHsxPpbPS8 z5V`cjW8uF|O{{dxRW$DMqrj7iUz2+cF95+Di$WdIWDIXd{ud{!Lf14$h|Q59Nm)3f zb@_nX@xF(hcda92v2tssidEA2Z{$ZnF0@tJfDD4)RiO@T;+}1*pJC2U3&c8V z!f9E^@5@=od39z_{fuu)F4&Fs-L9RZ@lAD@c&ykpL|O!dSV|494AVzrBRpO)lY=pu z?j&IzU&$9$Jr6hUMB$PRdBe+WGxY z#UULJOp6@;P=f2OVQRaRIqji##%8!o@*R?vx-us)ndBxaW{<A8r;M&9#AT!~d((=GAR2SOfqmvu-} zHlssHnma>Zv@jsvOLIesC4p_Od6h+5^^6ZiGTF0NYuw_s`r2l^R^3BP3E$$vrg^|M z%xiv!l78DYnvA@=Qud@WvJXBlk_lZ%(X#q90onbb@+}9S@RqO7_=-e)T9mjpijv68ne2 zoP%+$uorJ!X}-FOI*VeoEr8XMk9ph4SE5qFb4VVZ)xyl%V zZwYiLuIict)rRSU)%egsO;co=0bNghW4Zm%}or|$V+!CDIf!R zxSCW#)@ddeFeX`-=jn9x20ntf2{xQu^ptvd_RY``O{dN(LS0|`QmajH{7#u<)}>C# zw#zZ!h=S)I&xY!Hx6s@tB#SodpzrMK2sy8w$jyG1+vFA-A+&$o%Z+NJ-lM?L0RL z`TQ}5qvu1>zuo#)apC{amHs$&@5sf`fW!b0igSlM(ho#Iw{6uUuLG=~a|&j?%sR8< zg?oTFSA@`!`OytkuIT4~oA;M@PzzDffq`*4G(L{>7;*%${Eo-0awPudbfWQ({78si-gg?UM!lB>YBWmgW zz^1gi`qz7#*oFSKgMCG9NMjI9JEeBpy)Q2QhUv<|gBZ1gSAlgOFapLuf2#d7yG**3 zZ*HeeaL6iF87hVh3^Sar-TUb;Zs~-c|HtjzjgxGF;lrNvu$m5jO3GTj#Z9c&HLx{FK&E~7GpC3Hjpw(q4ILRyAX)5(8nSj>hTz5cY2o6cR)!O=Y&K_fJ z3jwVParn5BaT?zQ$x(Uiy4dbmblW`!#+B{yAa-HF9II$n$Vc8Xw81J%wbcP?$guE>$ZavBE(^8i zE4|5(NXw_LDhzb;ml%jgRnnrPW!%!*$lPDRroXrT{9?(tdW=yzurZ(>npc68KgLNa z^>0LyQtu+kGET}iySM0IlUL~^aOB3$`(E4roPvhr5mHPYU$=*b<*17j=MJ5F&EKme zWO`sKo$-!%@5%-_HciKW*Q_Qp;+jBKua+di3{NnK`pMz#o`UtQW)i$C`ud20KO4s- z9reZ0=Fi~XFH-RI_SCG zBBQ8(if}fNR{u3ql&5Q)ltGlKFp@KwGOX3xHf}s@K>j_i!VUHEVfI_Oe~6Mk z`X|Q!`wnp?ko6>2+)e>WX5Tq(xG?;)7i|rqSNi9_7M`k59duS$3E@ z7qKW`?!6jiBsF`G&^S15Ln+dEf?LBGEhTw>`r^X!lGfG|d&nIf7R>&Y6@AF(pUnmm zjA`Cvw{t@gFGa(`(>H2&AG++@f2c@b&6N7@X*yA~f_z>#Fn)Zri9QFnJDlC&_7!wV zCfT^&#*D0V=)1_Qta)^bJA$};=VF|=rdRLvt?};5J3c+1N`b*VvFRrQ--Tfhfu(a{| z37?(qr?I@IPrKIJx9WEP-SG~zutM- zFM!RCe~O4BHk1B7Z<#+;)+dX`Vs978lkICceHeOe!LxEP)1 zUA&vPz5CizDp$4R>Q9tNMK`y>aj;hlGJjCst@bIPp z&vsPJk$k9uR_bg|GP}duZ7G-MoBG#ZG#_lkwfMrG5d|28UB{|TWOV42c`3nU9QW4q zCM+=_q?LXs%hZH4+JF8lA1RUd?I%ap_nSk*);`v#Fc*-ZjbL}OjHb@uHU-blXXjks>k6B(H=azp(I>R?}&;jXe!m9{1teSe5*v=M@A^azx!wp^a6 zLwgkO&AK#Ry%J4Uwy!%hSNp4P>aQIAKb${inX&qvSRHwFo`J z(379OvbvFsO3*-!YuRhOeWP*0GS=ZdD*_8LuN$OwY?m}q{SQl`b5&(Mj!Zvtw^{5s zmAwblSbVr~bw>z^pZ-+qG5zb)(jhEd3^5_-N@=u3Qt4Ds=6J4DsGR_fb#$|=y!fzI zH-_l<=wPytP7>da7G#j)zjIvo)!N0J?h2*d=_gLxFRm^B@cP4_tp2m&6OA#C!Q78M zQ63Iq^cPaD=mx>=GNQ~6Z$2B4_h~=j*pfC;J$6^ty3%O_V?1jn5EijhKH=U$Zc9cc zm@Pb~74Z@I&+Pv99Xnokmuj74|9tkVbOB_Om*dtzq?3uJ+ zH`aWS{P^PwbD2*uEsJY%9zMiKC1qTuR@CZ|dq+7fXaUw$-0-8pSj)_r1h?;OF5gURy1Zvp$z3_ol?;fy0{`sv`r z>)`lEFuIHB!fLw3%2cBvzt#^xk;IvLLrcv`QVe{vUHI)^dHFA&Ki(4F^UcFq<+Sz! zt*v}A)G_oG@Mwq6`VP+&UU~eZmeRgdd6@F>dUCHP2H%XP-M#Cy`zxyfVpU@O*jwaG zmIpLzH9;N;TQ)ah(+cieT$o$SVnUt((d>OaoV4k84z+w){m7K$f8brY>`PvwwKgAe z%S3x4D}>EMdB@lN^9!>{w>`$X91+oad+;j}TVZT}#q1n%+^Qvox66~J&_|p$-d!L3 z_LqG;rg_T4Jo)ihr`v&QfR}TO)=hIsGhd1UC_yFBF~gW&+OOnEk!se8a&%fIKYeHO%VOHIbb;4BqG3-u zEVssdeV`PuRs(&1O_-P(LloGrS8jO;iPZ%8<}Q}wRs7K-58s=k8OIua`b$^-)eA1} zqZ^ex{ZK^kj>Cc>QXt>Pc+Zw*#1(B1diDeK?8^f&#mF1J_VUHGUx(=3N51^>a-N;R5iEjEU!z}v)ssc)HfUKH(qVK z>4H$wGH=3YIsaoaz9~ed`~A@D%?E6pl4X3wz91h-tNLV8Kx5J5x_@0Vvb>~w!=dd6 z?;YsQ_TRb25^>olyVzBTt@ydsf|83IqHDV-f5ZLz?VrL;3QN|CIyEWPLHxImUUypI zH@oeGJfHUZo7seEdwN-xRzs9TmjEHIA0f9UA6l!+2BWGYR6_+|Il8xdGY7B878#3| z;`7(w2+uR?@sfnqS#CgMl^+>VSq6@uj*Dh>4eh=WQuU0+#N+-P^1CIQylVR6Ye0V`Cw&JjD_j3X%!>ikj>Qb z8!pNi!jlkNr^Q&X2ts4a8taoq(RY}~MG5Fvcey$E1V>5UYEiGI}j`XVVqO-i0-=#U{_OHqO zPG&f0s=Sk#$5l#g%0iqE__?wuAL&+%h^YPgK!3^1%a0KJr5jwu*5(1xBmYHz<2QL@dy1!oa+wT0Wf znLwJmvPZQQ_L2d32<9^`gL9!%z>$E`u1-hkji!*gUI$;{MVDQ;rOT=_Ah`M^0F$L- zMGST0v|#jgAoe72e5Uy_iTMNMZOs-i@`Kv10@<kT>1@--!bLZYPj(e+CEZ7^O6+wE<*ejvID5A3 zUH$eSmj6czH|o+O56cwse~T7$*N9%b(R;ADouWk!@tG2Uq2*_w5kit3IkM7+Ba%Gg zj`^NIS~lw^dq6%X!XkSK+_@Yh<@ZA42s>670UBhiTjcEP7jpik-*@Y0W@&F{jJ6}c zMAPTlTVdQKXU2v7cFaJlfrd6mX;upvQMNzk`KWp~XTOO0(T#mbC7_pw6&j9E0oN;w zLz~a9*r9Gy9S6`OK2K`nR)YSP`LK_{l2%L z%6^c5Lam6g-i&=78ezZjmMYo^YI%_aq>XPM?tk$nH)od>ahTVM3ryTe9gm3qq;i|! zI~dHIH2BV;|NGMA%C0p2z+Be&kbv3#x~`Va)VIc{fG)VtfhLLSn-KKv&mOflfuYbNw&W0S5;q(r8s| z-?T!#p?t}zP!~{8aKD*8{)>lRFKna<8`j_)=jf}2>D2{miCq2ivyZ=WnbbP&MWNA> za-CuS6{1mX_h2r2>6gm`x?{FJl;#{m!#ZRMjQ(XCQ$^NFFx=U~JBei?b;ig7uV{RY zX4HwYz6jNK73>o~%}6=bEL=?s_4GCY@Hzam)Dj1RL9>Sy)_rf#zFX)1z)*(U%9pw; zQr!{)tBa-v^62;=(yNxHy0pSF#eqWRE5|=zXaKh0RNWJ!sE~bKfK)zRkFh~n zjl$++BT3hnr>-Icgx3<6&Y=tn4x#y7ZQ<$Ew^#*Jl{Du&q8L_f*H#TEb(?&;1XB^(BaEB|UUk z<_pka<@mGdBkx#j;Y6|dFLazs-JVf%&x@Y9?IT0_Ma@fFQcsJNBok!XD`G$K^>XF# z>G~qLD>j%dey~NpgF&U1Aqv@>(hj52!5^!$?i^&5HKySbVh-y~(I#J}=;S$RV-TnA zC2gf#iUR$l_kt?0V_@=Q^);xE`eQ=V8&on@(Ku&2m6W#vIism8k?mU}Q&Ff?)v6fA z)ZkP3z>qLUg}VL1Fp-#n39y@##ZxDt2socuZa)@X6e3{ZRCsS_G`lY)5^wT-BxM->6<`(i?n9!c3b@fMp%;Hk*1IpjFikVm1(om?@c*jRW3d20|M&*BrlrraNtv zw*Sfe|3L9Up|Ze4i*jhd1@;RK=WImnh>hO-`<6N_jZV+q1D7=!qHS`n&W?6YtvYp6wa=o24Y{?rznNqW4H zmi56!WDYOwDOh5otq?aoSRDEw9=;F*H}l2YEoUh^ysPdTpY)Mib=`!WC48vO4^$Fi zErQUP@Wv>p$BTbpO+CpKXv7$pRSbaB+o8rhtg0SFl#Oilqo`hXQix;a!hUz#?kC@) z=h+K*lYC9Z;Bgevl@x}`lAzv>tbpkq0}>o}d5E_*qk-Iqlq2}^{zfQ$XYc5<;N1VZ z?_=j1DrrrGpIfhn;1cqD$|}@)dQ~~Kg>PYEhsgN$^|%6|^dhH$iTfC#W*Ew|am>12 z-8)RUEGQghg-!;?c1YDMXV4Ss1K&s{piF(OMPr=>U{4zD#bH0mQc)ko?rh;4W0$pufjeZ%x;o4j4R@r#_J&7`6f?a&-EQ=*K?>RK+XrRqSIyR2Td z6iz_K8VH~5#>`@z@dowq+iUr6Wg&N zT8HgP2ybrE8|`$#)M9U8)51ehBPF^*QBlxAL?i;y;|Ll0>^GICd_~%RE~sU}3}Eu# ziny8Znc4~#S)%Knm+ZWDnC9ETQgqqhJh-@zWZj$z{XG+os7I>N6_Y=HE1M3EodBN{ zcQ-avp2s>Yio#{!;MAxu(tvoTs0>oCmpgvT`z~?gTCPi)5Ux@H5>(W&WPL@f#IO+k zPI;qZujWYjb>!Jn51e;v;raap)Jj3^D7c|_t_l2fPA-U|34OII*;rjDHgKSDs%|>_ zwH(P`Di8vJm-z;160r*3IX)zq13C`r4J*u9ILgq*yg6Qt)z;R_a~~b)sRT>4UPWgnbvPEHjRY4vTgW^rc}ob)K{#QXG}-OD&^|m z4gF7)?$Q=yx98T-ECcyi;@cu0{guW+y9q~~$f45+HU7;al6eroEVv4{;~!{_M~3xV^GNHFfk651hDjsn7d5mpLYl^Sb6h+M>%? zqrIlUu)>ig06}60;zL>dFON9$YBcRF^GiOGI$IrEYlZ_sm5n&1XfH0Yf48c{bLBvQ zfxbfZNzE$6l%247mbtFC^Vsv5NJyZ4y?Xok@&A0rImo8roiy`?GZCkP?S) zJI=Kgbd;N$!>tk{{8Cegosq1e16uf1T)al4BL+a5#(5)N5x*>xpHpS;VY@8Ws%%SJ zCJ@r8%RqL4Q7PW*z6T|HBEHx6X9o8WBlt}1n13Dgrj992cnA?xhHW2XHaRGUR?jkA z5=<(0+WGxB+Jk$(GOPfsgOPv8>@S{gq)=xB%I`assf8dzB6#P#7UL`8^uq~|5<^DI zl)I;`OpVX8{zeB1Bs2H-53^E{{x!82#YmY%pp8#wzE?UDw3uGoX6AgF-3rsdHv_b$ z8Mu74l;uwI*8DTu(kuv%QY7+VML_b2&*_jCv60N8LG1DG9M*GH$l`cepXFt{cD#s8 z$}-vE@?4>>x7ba~1lvWlPgEsya@$Gd0|&sSo*=!Qt6M6<59i?v-cc4Nujf|7xNypo z^<(G6nI}Z+{bCdWT61T5ueQU&jA}repo_!BgglLR$X9zyhgW@Jevkg%%Z``a9qt`w zUp3gNS=jTi)7!HuD3%M}QF9K#I$HA2ZW#NkZl3T6uy0sX;SKNts6~C^zaBcCMQ5*C zT`JEq`p#j*oH=?P_?_eUL&~|ooBf|C-R+(Y5bC`G8{@IUW3{eGn;z-uzVu^}n~PBG zM_c0^1EmXbpA0ix_TU#BqW{K>`nlDOhm!r2ky@ikr79i{gy2=V08l?-l#37%=)K>i zukx31KMtw2%v7RVSV%~z#;#y6>`)lFY?6KXhgTWcRk-65+&vS`2-Jrn`LQumEJ#!* z5T7$Tj(X9=KIDqN1%d|DgVdX?sJ9c1KxWY2k`HSo+&h?GPbU07Z!n${_Vmn~ zwOAwdvfwi4)ae2xMoIvGWM;2Jl98B8GQQs?I4g{-lt|-&wT}{($0qjrw(%6|f+%)i z$Y-H)^LdIylDo0@Xe`vyovakWtApSCh5su6E`s=6yL9LLF(T}41-_!L;r{9>bll;= zXQ*{Pm$yr6-rHgy>A%phn=lWsWB&TJD;mx@*xrZl zNt!}Vd;kCz16BijTv-}7Ep&+0x6W}8a?TP0-$KU&iU8b>J0bX?v1b{$Y>Ggfa&cgt zc}UqNf63^wE?7fDB0f@_w!D;nz3~ohxCvIS^s?LYCY4(5g?|YhHiSzOO3Z}Yjs3we zwJTmtDwC4~3rS2GNnyPfV9$_$WbgO)JNlz^yeNFsA!M^j{$<>|RKo#Os^_!lhwhO^ zQ1kB`>JWNK^>>bM_aM`a9}+cEHB%E%Y^{mtYcOC#?pUWa4GJvFjxJn_{xmrx`PWOl zf2{cb^4-Ghi$=mOulj&$xdXt2Hxjqms2Aw_3GcA~47`{=jFZ-xiFtMOz|oQO^>>bk zVZV+RAYDrOdX-x`(UiZ000$ShUqbX9Q{vjtt+qMKQc(q zhLHPa!wF^CeIo*mFXSCApl!_Csg_OkD@L4Qz5G(T7j|8L|6SDx4L%${od2|TJ@_6o zwPgU`q^4(#7~6j)%RrDR(AvW{%X(b}01L4P0GWYPG=24hWHddc*9lcM&8xGzs#crh zB%AGn+Xf!3`s@SI&6dPtrFZh`vAs`Begq^JKjf%bgeQ8k;6&m%Heq_zUm)vla57 zXzqv@7Y=KcE5p% zjn3wPHi!qHrfJOpe~5;64^q>Q<@((PLy7}fE2lDBsia-m*Ig6lg(fK}ISl%^bu*ud0d3NIAW_;%_O^C2GZ4SX2&H5h zj~$?sm}-&o*6H`SzjHhmas;(2dnZKKkPYM~YKFz)(cyJt^UusUp-Z?@#aFkASV z4^a?G4rFKET|Vk64R;;s#m-DUEj<`QcDtqH_;Yw5p5n>*@+;jN$A>-umXBSmUzx4D z)>@z_Sg16q`6PGZybgp&nkiF9JvR%<$6T{E>y!aT%mS=Q;>O-m7@(=x5a`)Xnq3CZ zPZ>v-+^#HlVD4L5e41Iw#|Tp{mr29Sb4+Z)TLK(;I@<=%o;k`Somi6{W}kLxVNPUq z1n<7D+|(qL5f)STmrK|Aqgs6{hjY0sd+eCQohckJFUnJvSkDC`A3hkiv z5AVBF#%l^ZsA19;iqml2IYzab+e0Aj;z~;OMqP8^Q--eaN@Q8-dJ!nl#j1Ty?Ng_!_TJz38NR5M zG8fM1@kL)a;Mz%gakB0xbf&{ zXHs3}ZGLmz2Nf7Y2ph0v;dM%LYu9t><+#pqA+47v>bQiMcvHcYfX>*AH5tEq9BHFAfq$0<3jg&42g2n^hC1(t_PU=;Piz#$tHF> z+YZwifv(SJ@NUXzwQ6KJAmaPIV$qhLitSb^o&ypIzKmEB1Ev}{nt z2|PWtQ$?#7;Q}M)>`m08y!k?^GK0CEvnjqug}>Lo9+A>2b@t4wY`5rJS$BHeblIDt z?Y#uevrd|rv?Zd%`ZMY7PaTvZGo*XNRNeh{n?-%}ym`$0=L0Dpc;Up0F4L+?rW$Lp zNrN?{bD1A7zZryHp8y~2PUZN~PiqCrO}wvZwR+x9Tj&rp)mgJoSx-e9swebV$(_2? zK3*uYVLK@=wfg78C}IMjMz%QP{{s`*!a{RmE2A_W&!A&0*&0!}ic;btI}*TSKmTVS z{>@Nq%&^~H83pw2L{3>Qy@n3zBjP77j6hRoa1Bv1Jfy{9AF=QLrXUBmCCP8$?+WfL!9j||lh1cJiK zwGSwHqwq-Q_s9kp+lt7PccoVO$26=D4=^0L$k9o8^3Th|8nX3+yH-ZJO} z+H`0Kzs}?1E$f&JA^4cf0G}Z{Iw~Wa|B2P!bc*+RHQLp+z3umo0MVAp@-DcQVq6C! zzX<6$l$f^_u)}Pk7@!v{SO9#UBoW$nKGv`-7^WNyV zqLGK#9>WMR{ve+Sn*m7I<5ZsE+dLn!?*$CKlKj;xx~QHgVrN%oajjvtg1=_XKA#*C z(56bHTxU+HJ%=srF;n4chIe+?(b;NCIX9l@D)_I`Q6W34{>qA`n3_i0zE%)yhIu{~ zMGMfe%!Da6Mcv?&-IIfihIHc1E!Ps>wme>RBBHV z$;`3|;Af-fqr#Iw3u#<4q3k7!hrOsN;H*n-Bm6X5;ClqeknEASr#30sC_MrG25im5 z12M1edaPf-M}lj}>$&f>0|6~qm5-U*W(UsCl2nA(jc5r+zbghlJv^KFewyx~uJ4Go zOEpYILTM&0DvM!$*P<|?APsu%7eL4^!rU)ra-Oc>I?>}vdUV+X*tJDwXtO{SYk4Rn z%F+Rg;p^Y&RRc`knYswrB@W_M0p8^KLaGN!ID(SWsu<}ykQFF1U732(kgf{2J?pQg zTZ>u<(-naS)tKg4ZdfeGTf;DBRHw40^Zd#{EQI_-vuh>t`7s>ZE~Q0+HA9fPgpLp< zD559PQ<0r`c?yfQOXqVh5y;k)d~g%dzoo&~^gNi6I=frKlg8)++1(sERzt0l*j=wr zQIT0n6dRSSUL0dBY!ArHqg1~O*0T0PojnNg!na%aeAvz>RI+O(mg=2TXW*BIbSy9)L zdN{l<`@9DJm)}1RI}<~Gni9}Fzjy1+@d;L3V23Pk83p-*Hv1~zpyKSDQD5gXa`d`3 zc1OOhYKa$ou^UiseO9!?f46#C;SoQHAk8(3-10mAmOB3J{6Ek7UuA&eABu@BN}t}X zWV^q2d~n@s!EErVTj597t%Sl6o2+Tm2@8p*acAx8dEOd$g@%tKUSvK!OPRKJ?1(LS zUFFi_in+|qNus!Je^C02V@jla*ACgChz#IiW`_&f^J)>mh=ZA zGyN|_0k!&blzXFawz)~9M&UbZAH+m(lB} zcedvE%7M2Ti&5cg+s}X!CebUZ!JRL=MBG(=Kdfon{Vw2?zMnkQ5!)f-bUsdEjcDN^ z#Q&;`eGdQ%o7k=WpjBOM>EK#BDDE_AR>q_)GWdNHE*8RrRwo`lb|X0}Qs{$sUD`Cr zb|V&^fZ+NqntbfXYyA3T_BDk7U8MJ^?tqd0oS?mG0*qhwaLDc}D%8yg=x z5sBM0u{HK)w$GGzjG1pUTST4;2s}4(+`Kw^?y9VD=Eu7^RN8Xnx(*-4YMliK8jQO_ z_rD61CN!T1Pu)w`Kl|0ETe_0-HtK=Y(YEa~bl{dhh8d zjBYoijVF&9d?;U#lAc-EL=`OWSjedfDLW>ko)!v^wui}{L3-pA)NWW%)W zh@^7{Bk7Y-D>PrTtuBysScAh;+>^hqZb2`GJqD#qjj65IipxGlKlq5%eVRyxh(Dxw z>5Omn&unY8P26s#*0PwC2#14Ps9G00z6R4nPD0568mY_SH>X%9S&^v9WY6mZQJ%u@ z+7&{4*v9dlA%SV*VBD=*$pBiVE8Oho`-q2Xb&+QWHXLjcFYbk!id2fM?asamdh9u3 zc{8qjFpYslvE(RPeXP(=r3+K$r^j9RXnhPiO1_?Ish%+V;55KD^JXO*$DZ;Gt!S-y zO-`z0+Um$lJ1|(B8aRF*qsfrY^kr63)D~W&e0l;%&t?(PHFLmRXk_2x@oqHJrH&|P|w{A_JP$fZE=fQE@ zhIXXM6)Y=Ty;7s>$EiH_b2+-xC~=LVI2Ur&ptv0OZ~65dbl ztzr`mV*Gg%$sSD0RNbJXH`#*V&DYV(v?I_Lw3p^@I#`V zcK<(~^}qSocW=i#GIgEPs$5M*(c8I^-Tq{=IpVprLfk1*{o(6C(b~pA^T#I5g^g3S zPlB>(S?qRylRpeij@;WdV-zbkp=pTV5jf!I_^0J7JWRvp-Z8%DA487NS?Z(bK)+lS2RDAuV=EiA2LU*>E7y5{g1Ri*bpidn~a&T;_!Um_JbnPnTj-2^vGFSAJ&Id z8_@iv>+)M?eSV(Hdn3$K$BD%Ni02dQwq<9wyFFY@k!=mEgPiQ3$|;z0f)a~YD=d!? zbu)2BE4a1vE^Kb}M{OKE(fo<8*1p;uv&+{jt7!i!;1^t7c+O5EV~tRDG^G5K7`u8bjLN>Kt!kS^s)pxx?=UxDH*D~wJEer&a#Kw!7E6$a8~j7T{OVXu zIludBHBh$_L9s7;lhjz1NNJI$#IJf@laKBir#9-|C37f(e8iNnbYk?&jj3sXP=k>X z%uh;Un=?>r^;>11K}||ah5^F|zu||T69b*+LW#`wT-=Cpr1a|)fA1XxhA!!`U8(gb zc=C>YlXsC)FrNfk8|KofW0B)5`T;p(cX4c#VF}9?_uk&0ns*I3ZPXTwdM>FPA$(_6 zrE)XSX9=`q$x*Tr@`)3lQigj{3&4U_${u3o<$Bhc^KP$&{tAcrw!XS|m|^dsyCkD_ ztUC4o&Mt=cg26%-@sOik~`O2dU*7c&XnaY zX#MBqIKD6_NW}1kBpD87OKY~_BVE3rZ@Y~0QDcDooA^}y_{tSk8YPMza)Drc33QnZ z*5-@J_r+Ph+53pb1nR@ck8a|R@Z+_=(xT}7^1Di`sJ_^bdT_wE@5BCF*>;&&fLVPg ziM5n~oL-JwUfb$P#3O>gBx$6p?*pYt~m&864kxgQ4(??%5&x_a@+#5 zcMK{jIk@7yVEAIMo}-2e2s^iXMA^U zl}wJa$Yl}J)Xc$rWzC~ojN8s;rGR37Yrk;pSdgR-*7UeL?kL5<#d*AU;}tA>A&R-3 znv2`}`14qEXb7eGcyD$!pqDraSqjhdJ3iSy?*W9}06E}NU=1Tm0iVAMQq}W`#?ksi zHckB~(Yd@36(gY5w7)k&t4aDfXo4pETv}MGt0KVYB8o4tuyN7x!4#l}xce&~e_YGF zeTcN}AXzi;Q_Z$M`J0QbA2UgZj-Du#+7jaD-OXo%6&3SmMI?+JOcCQDMT$<$Scg6E zOG4fpD*jUBd;fE8H^mD*&wd2UgFxxHv#yTRILF=WuZ8fY5QaQWb# zZ__*pZ&d6HflA2^<^lyNO+L!5fh}hR{n=jy7O$?Puxg$f-vu=#_iii=@#zWt`D*9{ z^|A^)tm9mNFWz%FHVR{&PyP&nqeU-=TP!FSm((`&SGhLUSN6aK$NJaejLvL;m=hJp zQr9+KYG<>hHMj?bOFzg}9$3*O&7LJ$Ba8WhwujoKTu{#igmOJ!^t;EYs1HBjy)-ie z0ILXG#+5SO0JCj{kcw$Ah#bJy$hj^xg=#-ON}TwTE(h7@jMY#w0UC? zy~mf(Y<^kqsQPjQ?7~TH_wqO;h7+gPFAo&#;xhXO2iH>RZlMh2KDuT?{;>b{l&;^t)dl^QKM%nW+o-Z5p0-PbuB3a`MVW5OlZIH$W zq;jZkoDSEB8${bJayZ=eVcj;N|HKM1%fI13MsC_sE# zBa1Osc5RxsZ_4hpjLcV!PutwDWV!a^A4zyxwu9T80(eq{_`DC>5cD-~yg`pPyvaH< zb94NMc(ya6nzwmx0s(X^)={;Gy1MPVpg0V>wFQ8n4I%wVE=oqoL-<7c&-yg_JaZtCUqlU)Cu<+=Fh zOsBvLIos0F&220ss7J`-H+?m zwbYzb<^}B!S=lA`?katx{oCe$xxG6?4;9u(R1j7+KJ*AOQphyPLbNTW%g!v}jjvVD zZllK5-i6t$;|A-$3fw~cmUsC4=k6blbwbOkOShbmbLo-x1e!xci`|7!jTU1tW8omb zRCWA~`OQItq+Fb%WWnX!*j8Vmpuaw04hsiJD9b!}!$t79^2lp|0^@+~Ds*LgRK{#S zA>>WzCl}a$(2jJS%$|2{hoi?rlUqaP^y0M1{Zo3=&s_V*jeiUYu^)Bqd0X1GqBEv_ z2&7w2XFgaIxd=@qRgh+1=d8CW^?&w6J~p&yis|wVXB1V2y;9LPc2_dJgkCT%=$@ll zIeO|1fX;VW2$$XkoVh8qZGHhOOv*mj@~(cO9Tb)`*mRlZS^)kX~qN0w*ueh zRCoHN_!*b?9c(60v@3LQMKz-O)^0sfL$&bo5s0|wwgzqCTtn4C+)PK7n?=UdjQtl2 z64wQJT+h$W^B8n1jPR=5)C0SWb|`x-iTgdQ zF8$NO`jYwRy*U0wUwZK5YS!+l{FLdZ#c#-hrkw#5Ug05bnXq*mW|uQqIO66)_Tbow z{|IdRHhRC%YA_DTPF)HJ{WIJ-ASP`kwRe8?-C304j7`MDZ7)jWmQ+Ja=i!s`OlUH; z_)JiGnGwgnZQmg~{56jM{r2I~U*!iL z=sEM|{6+WBA%{ASEP^>NBXYkxatyBja%^a~_65~bcxN6Bc%|k9`14$nt`Dz|o4R)r zb}00)>ur3Wl{Kz#^aUAr&fv#Ee);#3W0Q%Roy$L_U}S~LD?)d_8W>ShII%4On3ix{dt6~u! z!4JIAJtl4G{LYK8L>ndNXbmaWd6+r(GDiASm$IQZoxx-{U$Pc2%l%owcQbNIBL9Z- zNDBQN!O}M<{-S|#uFukTNi_*O&QPcw{0yt3Yo6slV+x`DBhtdb-NnR?S&vCqgq4}w z1ZJoIVN?k%Iw)L?+*zf2;`6RW3 z+rbDgP2Jb{Hw%J?vzaN;T#(IZ6Yb#svqiBRaIpb+y>aD^SOq$o`VcwZMoQt z)h9O;G8(r#hrSA|om$;zNN3AE-o zFs`xeNKWV1cv(2XV8c|vrP>aDSGe=fUX?8CcFq7Tc-Hgr&KrE`=Dw~j<>o*Qd1P%t zIZIIPtH6cBk;2(B+nvTJq*fqVt6C|`!!P8Aou=GgB0S@T+(8>Gl*x6sTO$kFQU%R& z*YMXiZ@q%~+w-N=L}oE^0Z@*Um3B?0a9L9k&*c{k0dVS1E0HNOv& zj$=cEvCi1SNQF%I$6?+Cpz+Oc$nPgL)B1jYEa_7t8TVe(Zs3CpObX$C+9ub7H8MyZ zH=_v~8NO3Arxt|#oUR0~rSwf@`O>U&+JjYfRAWdsvL0CFa#LXZPEWZJjn6}+NOtZJ zL&p+*HIR{i08TsSR6Dv34yNG(KA_#;xwMUds(v29NsEEBwuIWHiF+m|I{M(tz=NdQ zp_q%OqWMfXuwK5l()ByB7T01SzsODr1N5FNxxeyFC^9K@};g&wO>*6O(tMF__qsI3*mi|v#_cvz00dC$1U zidAh0_JiJ_jsF!3nKQw!m~YAmzU@86_IbI9V8MN!sb>4zR63`7IgwLOf2=MACyVL4(rVHE@)i6n$mkH#95?%n?w zrtIHxV@6NGdsV4PYnYvCH&47-;30i*>&F|aoGB1? z@bgJ{kM+Z0)57u&lfCoAaKslkttP+|5_`X~cyu|*bhMJhwmOlR+?&d9rpY-#lp`>1 z{c^F8j;D@+gfWLjsqRs3VLOux`K`rV25nO87wy(x);z$xZMJ=#$3{12X2m2=9e8f_ z%Zleb9dQX(4a?siUNEwfC{0*M?8~GjFyZYfJUKQEK!=>XP= zEnSv3FnFUg!!4O>Gm_y6IRMZT3WYI6tV34?()xEtv$6RR`>SnbMB~X%MO$?;`zdE) zEHz@6B6RZq7NU@$5b|WI^N!a_QNeIKbjh(8wp+6Q#nBlIa_AInZaSY>ly&tIAH4)U zd9^Zy8un~qIb@Kdk=T4VJrOxXP-=tywfXD31`v8zo_ovP;1C|ekL7%#N04PvfTl8sX=P<19&c6|*no*;! z@q?^!l35u4$Vk13(>?ei4#;#)bGld2T}F@Mvyh(ZFC9$mTp(QBGoMHp{MmO^!4~Ex zLSyYCmB^*+eHRh`Pl&5=aa|>Nc|t|~+h)>x6u;{Ght2BsOqt>!>o2a$@z9F0g`ppo31z32+TZbg<-)MQjb)x|+dvU2BGkS9#^2BQ z@7pA=ho9EpRYCXbUY+)dPS~r|9m(aBoHTY$gA2j|et3EYb_nJWjN#SgH~LU(2Mba| z7y3nbS+A^?yPQnbb8H;i;#3>Qe4SaT)MB7q3eL#bV~%woOB;ek1UG~F@`TGO38dxj zvr&KDKPl2d*lMuo`^r^s72duz=}&X}*?c|@hxD=#+QyX1`eov-P9*(lXRqBYmktZA9BaQ&v%M+ zd(4AX=F(X9_NG|4dMu;6$Wp%7G^g~cupw$z~veNZ!Z*!7L za_mrlT7}@ytWC9m`+pMHdpZmN{Hs7V^~y-` z20PcgbgalPE&5vN(v(ivs`AQ0b5XclbZfM4xW)=>GFNRG-WiApG5>`0my3<^ zFp?Q2N=si@(CZNG?@bq4(KQLIf(#ptXSC2oZz9i{-SYNSZZvcTc~VM5EArRY(^fMS z8?8|#f4%Zo7uFexsT!@thi>3=iDQUieplD_Da|IpWhoK;{AqJFn>(nTHBQb^R+T7P zcFlE=1YrMpdi8Vp3Hh`sh{yWHcG~Pgh-uL#ZzjYV+rdeIK%BV!t-*ztz$Yr5BcEq) z8AZfZ(o>fMbl;?HufI$AtMmVU+vIf39SXuNVX$xcFcVP15q`7)BGj?_ftpK7FNiL6JF(d-8vs$65QI;dk$1+v%7%(?e13Iaa!@9|#_b zCLyZs$&uBnjmEor_X>W-)!prjYd`aEbqV(eWm_IR|0n$y&33v&b*<@1tI|xD2%WJ} z;Ujo?x|H7k)%pMPKb%F9tNe#teTv8{=ZZ$GPJf_f@D=aSKe&J610{7$i9aNgaM!#j zMl#wHBfcQx5#!1Zfe19rw8-Grt@O4~c)v5ck(YKCwtRNHJB4lky1p{b_{}=i8o!=I z6Wj}5E?N45e>E7sUBp#YNTeX(I{B##qYW@1woQ8I%9~G!D4a*m=6>Aq*ssRmZ`{Oc zi0;2kYi1bYUKJ!-L}GRH>paYB6T@UU>j@3zYu~(FIXCDl)!%X;M6KvHgnBmQM{nQU zLnk=wC?xvwn}31qd*5}koDe5-)!HJStNN{T~UgB4i zPcpDr)28ml9S)EvQn_AD1w6L!6gy0;em|+w-hr}SN7T2}B|6bZ+VA$@u?-zYojiZfF^q+KtAvHUgFx5i)1wMLDuHlo*Jz_%E zqCwbipi$HxgO^7OohEQ<$(s30b(udx7(5hjfuVd#m z%z-Z>;96-a<4dAO!h&_$!d<=`%NOQ?(8JijBkhTbt=QHpz2#q7Pz0PRdV|t zjm8y>TGjJe3MVf8@ar@Ou_-S6kxI&(E>ScZ?a z*3rCLfp7XC(XCe}gvT^MvCR(qaQ||EGV1 z;O~DQA5@`p!l-Ckd;XH6tCeu9nv-w%n`b1ydI#s}GJC-DA&3pv7oxY^bj}GeSm;KB zZ}S*V(?Cz@ELRpawqEeN4_q~n2oC|db7(GPnKk0j8x`RI{0~0<>hHhDzS^-$ImJ$6 z)Ku;Qo+_?f87n{3uYEDKaf{_iG?qOmsNJrWY9|^@H~M_0NH-Qo{qaRM+9}C)itf2+ zwaG%JkldeLKnjMxMuOr#2Xpkoe_Y!S5DSX4s>o&oQb^F-#{+dw{yOp>&NkE(%4P?f zhi*3jc$AzE{L5Qn|6-`A@oW?o%rodDR5&X$UCWs0{d&FRj+I*kve(UEQ!O?#9; zdd6B-r;hj?{PhNAO*bxfaW*hXT1h?gR8`He^!onY;nSlZ_{~kw6%G7=LIOl6N4(|; zFNug!`SMl3X8t@jq&nn0*1WFWRTI;gGK1fYLZmZ;Q2Fhn*d2j*!9T`cgXH_p5L;^#i3z5o^x@8p0 z^G880_1;DB=}mFNQxjODsGV{gzjm6iq9sg)-d@iysY@%-J|i#i+WuxBA++C?LV}Qer zMm%M?WcuWDO6$0?va0Xra?#|{k;m}FExhl-vP!Wue!w7T!KgQTWNpiCm!C!H6n>~_ zsMV}1KLa$c>NiYHiEr$GLXtPjiX5fUAKuoby~{7yx-GGA%z#axsT4)>wC&jxw>=;A!5s^MF4itFeh%<@(=qP7 zVKY8H?ljaRO;ejEhD`}}s1daooZX-M<;2PTdDif|I~fL@tQ|n1c|K|ldb z`m_v5Ymf&|f9GOtnPrj3m$yk)$f6E(XqQ2y<&znUJNB|DL56Thsi`mSwf?3g>nY_*?3k*euFvg7=j)Rm)a?X>8cMtY zBeHd4aM?;a^Ze?Ey9Yj_ZPc>^RW1|D-M{4oKo6`Zojb|eR$ZGtY~8^DfAX%qI?;El zim*6Q_hw-a|8vmT5B~Xj!F#qNR|it8$2sZDprCUYw-%XUN{&Xb1NNQA3^y-M!ftc> zn0xuRd+u@>BkdmO;xB$XppElY?BL5ZP$nTP0)x{6EwW@lw;2G~Zqv@~Ek2H_nN9!c zuhaj#{Y~e}%&@sA72RgSf)(+J0->FDiGXW=TNLVI9}TyQHW+q#>~#ihT>L6#B|SHSxh z9N$=v%~m$woz`=<@b^<>*qg&$v^7!`^0aYzF5z2w)p>SqnHt1&rj@XL*ol_9!-L;2Y(R0P3kS0=? zT%Hv$uP`Vf0bg22%WBUJUr%rs`ABA{#f66L#(#oz1^2-Dh|ALVRkfMt_v~s5brA7a zgF$%~b(@i9Qc}W+zy4xiQgBuF5d|eZpek9Z>cHcSP%Z!n`4|620xT2;P>vUe8uu$k z6OPaAKIE*oT@Bxlt4uh45Vp<)z7292IU(+{oEv8#)6zVd;1i&l?P`{xHAs*a9M3 zo`!Zp6_CwTvZ8Q%9dmD@$VY*l2hR}Htf{X8rmTcP=h0cYqff`eFO6z$-oR%(Ulw`0 zeDDtGdf*FJ{XHf)eWg5Wc=VeXKFDY*3@n+iOUggq*#&o8I;*nCk zpvhP;^{{RXatsR%Im`>yYQW2?CJ*dLnTR3$a*c1=5&VDe*9@#06+F7+N#mLvPJc8% ze!2B<-nKk|C*S9P%VfPyIbtEbe|Ep=`?a0q5Y6<+W|-%O)pO6X#}B630Kc#g$To-M zsMzDSlN|~Mz~>2lx}8Ca$4OBMNBY|x-Kf~>N0&e=wk8`91}0mB^Ct4rfSfI0%eZCa z%$@_EyuAIRo*XVEjZtfuDjX4i(WLwr>3Zov7d^<9t9VUv{j%|oCZ%s55?m&#jBD_6 zR9w|iM-IOs=NAZz%Y7X9v5+&HPOvC~vLn>DrzjXy}@ciS$+Fu{5Me3? z+m|F|4Kx-6N=i9)g_yOEShdE;OZzj}mmW7}(og>6ndwMhN~lFF4(jMhz9948eA+b}uhr8h;kMf(2YszV8@KDo|XZVuVxT-Zj5sj4)-`g*KOlB+w|vs_L22FF5#qUS#m@mDP?U zw})FhYbz7Iv+{UC^^uxt&Wh}pYUVC`M-N!d+uJVdn25+($-(VZbACpjvez44(R`RQ zII?SRSgQ=&hq0mz%qO1-_q{Dv3yR3E9jH;VTAfgU&Y7Ixl#ZA?G*R68G41u4A^~yk zfN-g+@ff(*{)@?@4dN=^Fbj~~Ci(F|vvX>_@h$B5f&TSf^`?NVFu=Vb?rK82P~Mkw zF@Uq-D9QKu9c+$kT`(=jZw9tgb$~o?_*1=3s#hl5czM_MOd)&Fp>b8bO zS?96#AQJn|K-EZA-HmS2n4Xfc_D0$6>yaY=Q&Jf7RWqvg8P7GFibk?nc^5!FUIEou zFp_{M0T4MG1CgN*ems40z=%<$%{;y^?x=GHr_K`lwH}o~N6I=bMg-JpPji-Galk5K z6Un-iFnI}PK22O%@o!KO_Uw>#VF0#SxS*)lTUe?0)JAXGSkXvNqR4Z?`FOL4ZD1(R ztD<)ZCbKi3Wz!;Uoj)JuwOOO}z~56_W=866p|2_6dkwbqSv_)fYk(dxQM+P?FLsOf zoRY}ArQ>^ep`j|)TQN4j+VD~BOT16NxK+zQ3MPnvDB{wt<5CO_1$WZS%^#0`9=yd6 z=jsNErjr2~`{7i9pde9*nf(b(m5j}PoiCVi6|RGCs5qh$r7 z07<25#~(j>1Z*jO6(A1v66}lr1@9>T!Nt5uyjp%aHnQ2G@p1l_kKK*Z0ILRGWK2@T z{B4o>PfRNIWB&M8fxtgqm?`&I!ztx zwC?I%66ROKFSbc9zdotsY(iDjEe{I*DiA<{b=oyVvny-fYjaYIWY5S$Ghho0etr4^ z>00l?zJjGQw)m0ryX>uo2A1CWnm-o1wBHqZg<`yFNh1rZO`#Csl0a<3frpK^-m}NL zZS{z>7eUr#)FEK{(*ix;Dbk~zE2Ac3+TzlCW9NSF5I}IBj)OC}BWKUnggDvl-s)$ECU|*}9*YJo zT3KGGqN1+#Rg+AuHk0n3-yTAWx3y>8EUcVWB=c@qahw3Iz`NF15 z=^gfj<9zcLYvGYoQJFp9X!$xPfi;AAhpl zI?3X*%bm^JGw9XiQqPSB=6Oh$Ra8W}|_6&^KB@8UEE zvd_Jh3UEeI4Ao3J>u(2g`9Sp4xTYx03cAVH7td}_z%R?3V`opC?bO1cq#UyHg$Xg;*o} z3`b~nVG^S`5Fwj;6VR+aDVvNA&VngWc8|F-d@a+B@Uf3&;A0KzjChkxTD$is*;Cj~ z34rpnHsO=bO7@>{+>D>%SjaJ5Zo&AvVI3wD_Kyng;5|kNzNUUEbH11vwPe=XHrk#l z>^xtv7c|aSJg5PM6%01B8sX$vw*g8;v~Q^Ix?Wykk5BKS{Ad%y z9G^^ro(o^%{V|88pC9G5W68{uu)oMq<7+~PGSiyZ_4GzNY447b#_FAE#A0~hTt&S5 zpDP7?L281p)wLAZ*xgKr1DJe{T{`Aj{#Acyr(Rr1=X9~J>&)ZeGPmJz3+a+fFjIqGxFNdLLL*!H@G@ZG;spdI1LurW<}Ky|zX~+C z8h2<__pBOQgSoXsl8Q1{f!)TEDP(!Vg(bZtx4D3~BhryVawJ5UiMz}3(#hFI`aLbf z&T7Mi0BsNVUtp&~mmEEWt*Z*55nU6;=c9{N=iA3lv^@FtLv`!g5=1hQb!h1UAIJj( z-3ZSHwY}1sq+Y=%nkV_}a0_g>2+IQC0t?;$oyL}{8TH8ziA8Pejv-F_j^Eb-8R&}g zlb&y49hxw<3s%AzWEDrRgg?#&?>(4En*fB=nyqAqun2U?t$Nw9Qrt7ATWF#pq$#NeL&kix zvbKJc$>cEWCB>H*f@XB16pE~x1Mh}epWwIuS>x%tF#i@GXfQrj+so<&AKpdj?i(8U zzy%}pdqckpB!1G2)D&9!^qrh!!-Z@QZA{OzvC*+0&;2kB(T(ubH+xBFfiNZ94c_V& zuJ%|hm}c_iuPfnSXP@j$tVorMZz#oMz#&MT3eWxAB<9k3>$X5n{GC*(Om)B6!!WvN z-+@KZBJR_Ae^O^HKt7qHVh^!8`Yoj!wh-B(Ty}>fd?X(H$G>jW|3^>400$59B2cbC z`v{foqs2x4wt5vbqZil!+1BV?w9_!EKr1!<*59GfIUo|eTYi>Sto9^b^ zKFS+wl<+F#$9rHhtXcQ7Bk24RtbU--)Oe0F!L9QUJjxI{)_L;R;j&zu*M;Jz(jMx7 zI4(?5*xNiokDz!}l3U73S>iydI1+lXNh4a&GzFeyo*S-m)Cw=p*>UXV!Or)QpdqtaJZ&=a5$3mxfox1*&S zwo&11CM){Pi8?tvrf=z*ssg@o-0Nk|p3`u`wmGVDe0k0fzlX4L#@gu(!>&bnssIh2 zb}tqcUGLELIF)*#vb0cHX60iaA%!J|!Qv=9Q)ODK*~EP+T15+H~W zA|><=0R;&ngce93p-3n67CQLLzR%ged+&4iJ@=gF?z8uKo^#h9Ko%?O^U3%7T`S4= z`+2`#eig}^yyf6^m}j4MoU=4k_B5-hVR;nq_o4wGh9a0>+3ptZu+uUPz-NDSuZ{|l zc+z85_Nte8OnzWu-s`DHP=5m^k_{lNfmmD1qlZDlq5wI}*m9mPKc@Hw=-?v-CZa~Anacq{x=Vs&qf@$KqJR$%tCCQ18zEA$AH2#4P zaF@9YnB;;btwdE1i$1oReeOUTJmBp!0q4JOBS~E)ifg(ps_bLCt zkMwCcYr*beZz4yc(Qb z=1{oLgwhOuK2u4?cU2tY8J2gsCn6FQ4Zr;7)2*Yx6lV<1T!=jXLiNtDWUc6oSY-sRR{Y*(c~bt4AWmcllm{%~n`Q7a1DQ z6klii0B6CCA%APM$=Z6@-lP1D90u(poK@n620b?~PVQo~Ii=(NOJBcnz!%Bl*goiqy%Y2(%Dz4jI!WfzvNbSOHuUmmJE__&>OWB7;=-@Y zc1|hW8v|xx={MdK3tXSwo6GYxxw3Qtnd2YU1sj#@h0t6fJ~Mu(^9a{#Ti zCS3G_uYc>l_Vg2rp5|J$7Y5sz!wKmV6WOHrRc`=ohZvU8f6UdQXmG%Y4iN@4f`5Db zM3P=6ALUMKeOgzKcd6Tvh z{k@OwoZfcXwYn=OGxZA~f4#nH59m#~ zs9Igtm^ODDrw8+ib`PUBMN~v|?b#cRGKnkwP2+`1Xbpvnhn8ZDdcBhVWm&1=Tc7N- zq4*eL>FdlA5n3)JTCUSX5luMO({UfD$MHTc#Y0>NC^}vC8j+KSr`^w!4R1-xM?qnQ}Y%!!=SsA^rSGX|$)R;CWS= z_A-~I=z*P!QpGbU)W_RF*h{Ucc-*vzEn|+@QPxduLJNa@$PV!Ejf|`%tmCnuS7YQW z0&?)pi$m6Wb!$4fa{{Tr>u*H)>Lp~<#fTj%aRKFg@wt`4HsPdz7vM$hE6@pBoyzk( zF*Aa(#yU!F9ex+9gKouR?TLO*^ETV1LyXJI5wUM;l+>9--~51Y921TP@q{fqrw0r2 zcB_{jgmBaAT$DOi_E-u>-S(b46E>2UlQ1fcYo#wL31AbNsX#fNhA#pF&&Q_BRUQG&!RSnR$W_IzZSHSe7f|j|OqR?S~`aCgV@Q)7m^gV8jiU1C{ERtlv(z$^)Ca z!XYvdln_<{29UmIH=*^^#4{7F9S&A>^vaN(-@sx~lV5hGge#T@mG1Ihhwz1lV{Bdu zmCcau-E_iD`wEo?@LiHu+I`bQdPkn}5l>dmewBEmidFhC+ro$yCBt;VBFU8M;$4ip< zddifI6)mAQXA*cWsXiW?njtXQ*-5)t3=LPk6sHGB&Yk09EI)`Xdq>P3R-0N6W*P$k zT(+RM>^Ff>^>k;?NI@|vuW^@xz@duGn1F^JI6zaq?GAct-j*cv-8v_&up#lWGp>+? zAZ}3(45oy$NtvW2=|Z+jn3cz^Ssvdu1kTLz_^H0W%~<)*F}Sl0o~;0it;yRo4MPaO z#r{&`vEWzBwpr_dHRc?2$HbqUWmzn^RBs;2b+3uvJIZhXoG!{dvC-RE3PzlC?nxZ4 zU;M^lr>aiKOlMOKWIv-?Lt;l(Wpg5>)Mk9*kFHrk-iwA zwe%wI02mf`^5PD+_GP8ehNkIlTPDybARoTtih-O1T}_iagyyM6`ze#1#zRR!7Y5RW zvh|R4#>F2!WLdq=7amRu-N6;@xXoV>0yP@moh7i_s>1&mHWV<>y)IbnQ(rckmH6f( zwdaVZ2*IdlbM-2_E*d=_A1(%a?%-sq-Ir|4@bWxEoU@j@Q)>l> zg@k0L7yT8|7+Ne5UsF4%nxc0cbxMj+KZy_7ER8g4PPwx^Ok;GtFN&@Sw>Cf8o?}um zpuO6hY5Ujz@wxsxBb>=zyCqk)+nyLX)oUK(QU77{l3&@P&R8+wbk9w{y9alYUXDHSQ1P;3^#7{)uHppD|Zb$@W<0JxD7GcIJJE zyooVD)0I48wVxZ55dS;tJFC%CeKWS(e17N?G%zY$AoJJ3%t@x;&2`i#T9~l;O(#!{ z=T;2k-a$JM4LPhJkoVBGvy*fOnI?Nu9mVtI32wArYd$?!45xC@Y%SIxVq7Vj?Zvih zIr9e3@3P*S5!{qH4#@7_(8DrDhVMnJZe9=0yMY|Z9c>&*}e zIVpc9wFjltDJ}W;mC9OS)3+SoUdW}~ObW2VBk2o~ewN~g8G-26#eD7UWTjE*#>W_7 zB#GML?=&LCy__`$@9)#2DfbHGtf^d+`S}OAnmOK&#Abxm9rdkUtqo#8^wD+M{9AMU zAFC%Ker${L(LcmTh5gNNa%#z)@JZRpoul{n2FxOtk-)-Z08CTs*v^M-+77ry$&bsNyy5b z^I^^VK%4G-T3pUT!M3piyUneo_#gELZu%`dH}hW9Xw5>~lC2BUbNIEdux7;*0P*vY z^^vbd_QW)QuUsT-_Zb6xZ7k^1`SA@pyodnRZp|ElULIE0)4qnOZRd$7&=}j&aK~F0 zlrt`K{qL3f-|al#S!S(OaN{yZgbZl(q4wFw3h~DVK{8R&FItoe=iCr;SyxtNa**E_hdh}8$%`ddL>Cs#S~1CJlwzR2|=oVfhbBo3BWKeaaRua&@ak4BZ~Mo+UfF3GlGJErpF z-3gbz)2;aw8Q^FD?Ah)dKPYLv7X0M@HrK!V^QHH)CbA2Yrk3w}Nj=^iJc^ZJU&~S> zR<+Bgak740T;}XWK*oArL5!%TybMdTVo%!MRe@r(9u(7h)igk}vn%=|mdRcmE^k7{ zU{6}W6IV|cp@}nqtLZm6 zcIhC^COle)4mkYiRel*1l@cYwew5R)@>((3hV^;UbmMa8zV6o>)BlJx|7|hwM?E~~ z?d_nU8CL2X9HSFQ(SK5%Ti37kq4+f-gf=h9Xny19pRRVyt(=&&l<2;1IYwqg^dp+W%hC1qwNb-8m4~mQ)pV-1bNF& zPB6H7RylFl$0rGyJ*#Xo>BRipwY(c(;#!fEG8Ievk_$RpGakvtd3*c%2NhJ-5sGdN zV$f{)wd^{ZP3gj#R7Squ|JeVZr%5=0}oefoc% z-`|ziNk7j{7+p$!I5tih2v=FlSEqE&ZCm#j1K5+Va(9swD<);@=aC}pf}>a+eddn} zl|WHv`2f7H2Tlxl_rNXfo)K3F8}WQ}J#9E*bpJO>iZ)sUSX`6fx!*09F*rQK#ia#4 zkjC6WgIoi~THqRh)IJESC3C8@HkVc}%{j`9G%NFZG`BWK&~(RUw_X$U@(LQ zN|foUDC0J_jb-^I&^~=le7MrSO-TFvk+C5IuBvJ>zs)1LmjeAl0}c3!ji1EhBUxtRE1&idIc~-Gp z;mJi4hdpKBflNNym!|9c0{X{)ju-IXv(U`8DXKn=r(_Tui?-19#;SO~Dz_>-#OR@c zVRlyb9OC8np?FN0o%u~8A9v>V^~pm`Wp5UNst67Iu`of%xDeW{7s3;+5rG8GIl(F;>~-C$3&y ztnKZXZaWksmQDh`XQ7^|F{3WtYZ=qmkw=Y;ceW94(jsS|Cv)+gWbyaGGYPc?Oi71Hg!cMGDmE65(6wgnPG&9u&N&)EOxHqD;zj3 zJSpxH3~IeFkxe{Ny!5_hdi1GBnEIy8D~#|bM>w`HCSns;BoB>v_}P}Syji+K$H(Mj~D788Q=OpMY9@{iQxO&CV7fXjWwBG1t#TUzNc zA8^J+GwUyjc?r^R@P?Sr90}hDukg>nWh_hH`OEA_Y3(4@@Q#b1#*M5-ol`y zRIR$a58lnE=qy3#^`9mk$yA^yUm#v9m*q1lo@q!dCMS=p?^eXu?w))6K6rKm)jQAy zfkXHUkU+(*#b1s0r}QF1-9JA}4^(orzj>cs)0Xt823TWgRk8*#aoSQ^93MbN!N$ol z5Sj5e?KNCn`s&vhmqr*Tvy>Z$?LNxli3J}VOvk&!+>|D`)62kCg?*g5S*P6lc}uV4 z0!%9+e)s9T+*rx5UJcHxCpj1hr|*ZSn3~h)xnl;&db07Dd=Yb#9v9&j?qxB}KZwFy z`(2Dv>FQMJM^XmyV?POl!1Qk2;nm&uq>}B23FK^px%kwXd4kwq5YR**$Lp{Eefa;g z{^G)%=HDK597djC*Qn6OqoEl-y~$;+R36618*=Evne7DG5E;bXY2}2D1Wvu9TCW8m z8KMhwtfFFCAmON!-w{E#v&0MOCf(V)2_MDeb0d4am*yy}N-p!z=N9y2|b;ZNiH`FDRPG`Hw&)H!7-? z*4FE;IrO8^Z(BR8)9ZAzKb;gRsGN+2cZZl8T97;srY@Mp$GZbV_Rctnf8DpEFCz>V z$)G9N#S5y8KO+UIbh(RR+9l8tx{(rOydSST?91fnBMzWma?#1`9QeQMRO(^KwW7dz z6O)cpL1hnJoZ6AXvV53sb;WM~=4Lz!8R_eJR@85_`xUUAhF)``lEdEbCYoZL7!Fp; z&O-d`dU}{K{b(CHq0?3Zj9S;%AvBH|JJtxapDnF6aauV4zFc*1w#0`J9b zbd4wDQJty@Lt9|xfmy7+wmumge!Wt~arX79ovD)eULN4-Rbz75rHEgbg#}b?&Nm2{ zm#|!uh41H(Eb*&81TQPx#mw+>w)qn^6~cKas(U$MXCkj{>G(3hg4vu<>wE^=X^{5G z&3hrnwb*1UORB$2+o$C&Da&O&=v=}7X8io)c5f<|UR^g|Jh8(2(Kb6K7Xnwkm9e_E z+Q6YvnV=4wAT}FR5I)$s;>75ng8PhC*WUENWTBW!N+aYu=-g;TuWr7JxTG7#PSm=j zKL$dnQ7Yd!{Q5{!WAzfY!+RozA?;P^=m2fLi5~TiDMyiub&*M*o!Gc5q$pTOWX=4U ztMYuuIyP<^plwvo2(l6N!!6A(|FP=hAFODB2`i^vWsKS2d^HD9DWtI6LC|cZaU92! zn|j;klqQAN8}@Dmfot;i(3{u$YsZXrv=3XovRFrVurzMv^P=K*g~78i5aDv9`^GZ$ ziplY1uWmCJKmM_Z@nX&1yANveA*{OHoweH}(E6kN?-u`Yt^RL_Bu&fy5x;fmIb&Q@ z48j=Bd~tq(xfmxX=;tRkz-BVcoQ;*N%Q~$sPMsj0e}{_^(J^9sc*tV!?2uClz#&n< z-~w~^&JPu{2ML(In3oyn58EQv7M*4xoZmS7>)If5NRXgpO6z%f6t09xW0C~`_TUXFaPA?wS&sYH4kD^biFj}d>@00&)Jx| zt-2o;g(1M`5OYLIh?VHZ$5oE`$(P1)ty6X3tVGJ>cou9dWLW(F+{iO)& z+Chwm-5%E~19 z_y@|zyWzSFW3yolHBC~48dfIn<53<%>FhJHheGwLmJ7KYtos*GZ-A4jn<*_dkvHgl zU9IF*+5Dr|j=n#HoATz}Gnm@uc^(sy%+{{Jl^xg&DZW0!W@=Evj>mC2+Cy4rMG#^$ z-1TrU99t_8YSBGF87`V$(iqdBSnoy*+i*8s7`)zdwy#-?-G)(k-_z2cyFpl?F3Tg z`}|ug2P$RdJz!(zCR$D7yem=@)HKKt@ObVRNA)K~N;DtYzjxu>g~&-bK{IBi7UF}9 zB=}o?_2%C1FViK;9VXb?+w~YNs+&H9o z`OxJ#MbSvUVWccNNZtn&t#dXfTerV`5uw(gtkrp^{~Jfi4LRvrlORD+z&p6fJmpC9 zW;9dY{O0`r|K`i!nw@X2Slir$=H2OFZO*@h_Rqhbb!@v`<_gPnL}1>PF)L%DVF^JrH-(@u5dAsQ=ud&JCgrZ+}QXoQPFc5_8?N~b^JTqQ8H{( z>`Q%^gk?jfXUNOcZyZlN*LZH*o}jOWm4cj@kiWF|KW#f>yAHT|#9OYi%i8nsD+im@ zjH!>#NRgHZ9VV~QKEprB{W3uaE8KODL6{|9*#kd&!^>A)Z^bA!dcae%mx-!ZQQkbf z%LX)c!=qN@j@$f5u9;HkbPM zFB{myb?+1wtCrch;hBR<P(SRNI0pFI$AtKi`C$I}r=^v7MSU;zjiw=W|K3xm zq(iXic^73b^Y;0qmG1d%MAF$TziYixrJ`o8fiy04k8|%8g8kdEFD z-;5uSD4wkv)3tMBUI-LlVPj9xLL!6CmcLzA+O49ht55R^cvvpMfqpF2dopW=lQWo@ zEtYqWguqQJ=t!_a<~NQeZrpytX?>4%eCyzD^@Q}BDSZ3{e~4&&LK@W$1PJyO4a;E& z8t#RJ2~`bjTVkLqP^%{FG%><^+mfK7^W_$D0Hc8PKsE0LI1u;m_OTLnKP)aO>Md<5 zS5XJ{H!@!ST9Ba@pNdnco6+FYPBS1&g2gVHe$EwlwA`vd*vk4t&_3E{8~x{ zdaej(#6$+&J#6tsx8%JVtNsd$G2(BsZU(Iq)mj?w>FdoEgMWV4gXeWHbH`yHq+dB| z2rv=$dQ5A4XB%;Kpg!I-DQ2$D#(%r|C~IO0hAb)HaaDGIln;`s<6c^MZhWfHDa9;WX&X$yASrt^1y%qZ$JQUVgvSGbRXSVQM}tAuyrybnc`Us@mFP7 zb?4Q#8asGp-@m9oNvn-zbH(kTf$LJVGN*iToS|?--r`G#Kf*LNjRM{)P}MS5i66ht zql{K{poMD^$a40a;Xb8eU8--2D?8qlH|2|{IsI#BZDr@UUX_sDTQ*@buNb)E-A|?u|0*d2W>H?;+DPIb{-=SUZ1VZQ}!Chqu#OEq`t4l z!*93ul$p0bcx>OyYDV<5fF?}_Fv8F0gLDO`P~zkpQW@#OI>YO*425-}hPRbWIOhgB zl^l(LA2zU&t_tdU)?KFjFqy5LRm(ziTz<>Rkc~rOl>QdD-EO_lgEVg}?4ncRC91#4mo)8Xs*LAzNI#GYS4(_F_)~vW+c`Y%77%_F8-4S%#0A*cPtBZ~^_b;RSj##KzJC%x*`q>6CLk*I z(ZWR~5z0olJ?wdCc#CHtooCtJ8s`*i%NVooq?4(j=ba>B;pi(4zIS?6l_vV&!;_Z~ zX3?g~Wo2v=FJCkF+ueMWPB4j-#%7=t8rpW-NSafx8jWtoloMEHs5pae(Wi|J{`_U1 z(z&nj)ew6NZ7;s4ni(ZHT+Z`hth!@HgrtKt+lUxo&lz^uCS~5zLi{{7+|tt6(Ae0B znk+8HvPFp`;n027w!}A%b2o<+5wfx6jL5l9Zb7AqmDoF-OEB<>&+3#WM0lD=3~O|i z6%ob?A)G+bd`}nRBx@1)w;|6AN0xyNLnB19C$0GNxF*sV1#?&TE(<%ji>wN&X+rx9 ziONjc3un7bfBEo_8{hxONar*oKJ2XN82iPx43*^$@&jQYd=(P_)I3pFwVX!+qv*Dg zuW~zp0l5C!k?aZjNu)2|ffHd+Sw=4Wa3`Uss+*D@;WFmx8R7TC&>So~Me(B?r9Xy< zX^dJsI^)L`Jn66`I4XMT8+~8K%C}1b98@`R(oiT5t}do8hg)ez&}vzmL9X#-3~dzs zBlKVL745uZENf)_IIN|%CVaO-KrYfu2VZ7PdQgXI7`M054;F1YG;e99I}Y?yC!Ypk z$DNo)(cNCM$|>!G-#84yZmaEl#hcCS#Pc*=%jurb?&D#bjYHWh6104g03~=Mc{v{8 zXF3z;KbI$-`1xz4%}7b?ZMv(Uo#d(;v z?sPyIDHY#|(~*q+DJq$|rKjW7SmUzla$y5EYr~^)XL%&~^hQ#=X-8zo5o64Zm}fFS zQ6u;&d~26b3ZIV&XT?OgVYpF6TGz4?CHB2(nhHK9HotpC1dS>1_%00%sAH54En4c5 zOT_R_@dk};p%z$uT{aBISZP9-5ZnHZLjfdOA5}|oQ8oM_IXt%_L>l( zE$7|hv+vyd@vD(yuD{~u`A_!&?t7?*mMMx)+3-e9FE$n?4Ps3k+bHIbe1ohJi`Ne| zIxlh=D=Y#^J?b6oZWshE;6iqK*WH|H5f8eF}?>==Y zCZFozp*#mlAs?zdJlS z6xejE5{Rn_^RC#Vw_($|hf&TKz_r|+M)UDV;v7_TSMJ4MlfQWyaEq~|5keAP8X4)5 zl?l!-)U&g*Nakj85kbGi+Q0PI26<{9+V4l9tL3Z^u}L)cvY6kfXCRS5H1&H6nLikF zmGQSG*0=XrGr$Xeuel5rx)})R!F+xKRjvCP^`%l?;f`8@)315frTwZkXf{wQj z@?CO!R;cRb?emtz7*1y^UJPJee3VS`Jab;}L5_6P`MXxfd52dWZH;MV9ztay-`gTi zGFVCzl1^u=SI_+}xn_YT8(wiTAZ8^zFjzY?mWc&0VQZaXz4Xu$A1f3Y-r#_{~hcR`2`x$(fovK2cOUIY93T`P!q^rIQ zQrf*c)~0ZH>x`uGJyW(v((YoL+}ma;ow0!79z{cofh@>+?e`RX%Fs}1)s{|K=DK74 z&RPjZpZ!U%4Ypsp5aZa9xU@m5!q7|HwtCRd^We$J&i5Y}b3Q7aL&YNz-JsTjGk=x7 zbLRAH!{tMyV-h^%R6LC$-}wgyt?~tJx1U!g*N`Q(#04V~^iQ6as=0WDGNTl0lZCLu zvUhYV`nERtPMY|;-acuJG;GK9(={0dW+IBy*y&1>#TI}Spj8+R{BRb}H>mIY)>~FUAfAO7?zFF=QPS6&S#{!2)gmw5g4&81j zpEd|uelizp7@#vi<;H0JaJ4Tb*k5%_-s7=_4g*T;W7`XVtbCj>c0Xs6r1a8WKTp!5&# zQrLku740d7eC_zmt}>BBeEr3Uf9a8Ppoos(#JIjqoBB{>gvLF>eK8EQ?GsFNU!~B zzXss6myguujx|=qNiJ%XRvZ%e;X3Cp_r=F(Vkai2U+PNdBo|cX$XD6p^CZ%%E{T>( z&NBB8rivA4L87WlZ|tTvWd8UsK4AXl%NNi~kS$3G4fPm@12`j3(~V8DKar`zJddw? zxx(jBwxLIc%DI%S#};)mC6nb5UMtlUBYGSd(eo2~z_ssgOPbgo^N6QKDKDBgTa{nc`@U03eUB|av z6_e-S^*|++LcO|MrpV7Y3b&kFo{wRzNyLb%HgG)zR%|@FJJNHi2uN>tWXwK3Fyi;W z*L`G=%P(a?#7#UbHuQ|xNx~^59o<8eHUG`d_^-DU1}vS{a|_8c_aaKxs;~1DSE)-~ z$<)#joYcLlT>~ZLTBmuXPF;NYupv22RH;SC4XGI}Dxq8|rkJTweTewY)A2W(bET^C zl7iuB@ci_;i$+ihToTr>Mhtno4N;UTw#;Q2=`Ed1jVIZy%FV55>31sTP&X;c9>@vk z9jc1z0FDz;Q>m1<3tE(Ue8m|W`X&*|}S_WlnSh4Szb_42#tc z5ArhLGmF`?@-(0dua{gCHSoFoj5g@zy$U7`uY20^- z@Rp3`0R$p9FiQK-p+LuQaoJHBk%D&0UKx>5#;Vi|iSUJLd!e_*D$FNPBG0AyE8x^wDv{1lK5Jx^>*R8vHIC%`mDySFy`ym)KFIuw)1l{3 zE>zhd!ZQ$~uwu+6=605u{wk;U5+uJ{91B-i!B!9x?X8?C%LO~aQYBc6Aill}epr2D z&bHoOZlwB9&T{S=>57H!#^k5;yY|bDQD4uOJ5fdpC-Zu2xEEA}P8aQ+|fy(?&M4F&K3{c)Qh*H|HTmWBWHQFb~YIb*M zYU3|HQU7maw}83Cy@=JhbsqExwDI898J|@ToQ&2K%h#t!SF6C3tJbL3u+@;tHmu!v z(sU}fTgZ3N3%&3r`y0oAdW%U?inS-FJ()6aQ<+RginHY&V-&rqXOUaxL$x$PvnH@s ziAzWv&EKsFsJS(}X-SyRDQf_xzTW@M^@7iW@q5?LzGwz>MElC_IiLA5YtWjWcvz5$ z7EJzg1CQ8t;vsa?IhR4;$m1 z{R{qN%PU!fCOKdK+OHq?@F6?cPpd8O#!leo)7TtJs)+f#k)atTY{sdi8oo+kwh7Zq zh9zQn94l`2hdi_NbACZ6xw~aXzeJ*5-Pp3L~I`k4K(keub?iIUdrf=QC^qC(^K1tvdY^&B{-!CF~S z36BKzmVi{MW=9)#cBsco;|-1JIN8qw{RF5|B#%-A%%P1NRRATx9NUEVy}?^p@f`2rCL%AJ~`=HUA{CV%As zX}N8J>{mi6t%W}a9-o~H)QEl`d}LbA@n3v{T{@g*%jMyNNyC}A_qYyrxndLPkqom9 zNA4L958-R}u4+@B;S55$v)#Ki6gGFxcsz%Gn7m1!c}0NLtMDFqxa3zmVMqp%aXk$7 zY`7-HrV%~)dF|)`p-I9pCvSl3o7G|{?8mf26i6Lo(pUs=y)>(N}=>t-UI|>hV z8grC=iM={kVO_a=)3r*k4}@O#2TnTw4$%frUd;$SPYV`w?jUt6t&EK;M28E!F(}e@ z&OV}l4WM7mcFK-m7k}_YJUsXNh1>;b?$%xRT1bEx%E7_UYRA}92Ol#~pCe6YE+t%i zk-Ks9%IP;bKXl~YMY`AaX5t1tnt3nVz;x}m!Z5LAJ_LZs2-7T20Q0N{rAZz~(9nDL zmXePZ_o6+kgMRUk7z(+Em0I`^e0sPvPHe=42JOt;s%ypXnr+#g4y)C#&kGjp!z&y5 z?IUdfg&}eCIgf}X9x;QEDRYxyjb@zOCl~P2-5{pv0CVqq2QNamBIwS4@PSX#Jw;gP* zE>x;In401|bl8Wk$Y03{^*t-2oE_?AY?TxfV0W=-yGvXU>`#_SyPKh2wQnF#hPKm$ zx2`Z}rVyIy-nWvb%Dl?$ZSuSv#%DGy`Vf(+Eiu`19c?lP&MB8@jz;~YJZBIAjPDzDhn&h{>*`SJHJAE}ttSZTI}x{HB0yZ6AN!*f zh#EP=S^Vq5*@OELSOhRN4wR_D6Q8V5s0m$5d{JL`L1}KYQ0BH-v62hd{d@0KZ9Rc* zZ~gr~!6E^L)lSyjn;l->H>~OS)(dK04^h7cN_;q-pWS;F3w%S%C`zXGI5P{&55SdO z6oRoxb~p6m%PIqwB3b2P&Dvger0jfg)B}yl*JV0R8%OCIwIn(l>jIQkItkzPg^iB7 z5!{#nIOiVKf_2PZX|`t1dL8>}eeZDU0-)dT^H%{^OL`h4}RH{es`DqXww%xsexF-);q7A<;U&M zA%D4?_Jo7u_ft=>Tw?iGhJUG4V5}p+I67m-^d1vj+wbDQ=1x&91&d z*w@90Eg#Ik*tN|xer8zKZH>y@!YZ~+TqAL>?uLh|l~Eh*#oq9y*L9#K5Ajr! zoJ`l=+$105`gN;BeQh zcqA5t6;fv{Pf^OA{;*~$fT-ypl{bzgo-2{_-VBlnUn0zPQ?OapIE(?rDLW=j()gkj zH(PM$19Z=<+a`)$|8c6ydmlMnYj{)5)6oWluX&S|s_gT&qI<41FR=ni(KQUIGQ-gm zjGmJ%^2Jh0AW8!$)5{gjPQszV46K04Ddkr%yD>a%A~+l+?xAP z!lUh~PMfXvmCa40j`K$RNB4v&7$Ci;FP%se#24e1OO)rWy^=6^@V0|)A3(QcAc0sG zsq`0(k$WZ{8FAto`aO{CO+jGY8rz6%ZtT>b^O{n=ApwAy@~7tVBP?gqXc(JIPT^+k zH4II-KhNCev6;Sul!uh9pH=%r_|iP^WhNsrUBqu@{tK)a95jys*z-#i^019FFTTCK zhVER$PL7!h1hPzCmLz-la{5^iFKqI@5QkDb1c?avVoXbj5^txV32!WWS#A; zfer1Q=dF+U%`|hsLBni#AC7A?828H7ds&MC(_UjdgYz^!gD`ynI$B69W*joIyw)i^ zLwRGFr3c^rlM#7Qma1Vo_GocQwi|=v(^hmeN81i|F#6;%q-@Wj9DKZOA7|*!2DX{7 z>t8Uu(HcW`?&IIqD1Mzt{HzTGmeg57M)uPhXG{&+7iNZps6l7%mpA;Xd)E( zxeeq~{`B|%c8~lo`$GxO(`@b;bwg!-#@Y*9y&fcI9cyHK4kt1hT;?MSpT!#Ko9bpE zUKx0l!TH&yC>OFtW&jtaM-#b1P;ab@3qN6xy~0C*JVm#VwMq)FW_af@0PDjyDMLi*<0+HaI{LptI*>=UT0cWHThP8 zA7N39OR}iJH|M2D(=ZJ_E0hoWb^%?JgVC^x)&xGXDiXpnV|8Ra0l}7~Bhs?R6FzAK z$}Q^Bo6A|IGA?|GlUx2X;6w}Kd1-rEY)7KUxz|j-piMk5*4MP@Lh96RDQ@g!8!)=) zy}+Zs^(9qgMXqLLdF&@KWMoN3W13h)&1O8(l~~uDUN-w%IODgX)4fdNn!}lshShO2 z+u=DC4C7~8_7y0h?q0eCYM$Z^kYSRp4t*HJ7fG^M(>|hNBAnsTXLYsC%+28%&_`)) zDr4FP8ob~ebd6}l6o8L;7`%bA=_GS9#?0fHQ0~$lVoU7+Cda_B6W5a4Hq>E>S}3|k zK`ZQO_@&;Yt=?FK8Na640?GYqoDi1D4a4fkdx{q5JKs2*75KA(PRf#|Q`RQ)L}wVl zFLCLoHJG)>wt9|MbjX|DrJHFFCOo9WglnXRT8mYTBwu5JQBjJd(38y0aMsSLPn6g^rHQL13yO)(HJTY_{5byaAr66agGL_!y{}uQX2{SrNavn@*&R0!O+h zhI9O+46Kp9w}X8lvgo`2Uwc>jmE^j&PrLP=9FD13PNn8DHK)ue6D7~qy-_4IhfpAO zn>j(?9Ewx>Y|Lt7mIIV1ZMLGJ;>4ihRH&Gmnc|3wsYN0V<&>$lU(R~Jyr0fLaC*Kz zAD;DG>t4U>ci+GJx~`ofaBKgC^E4$5{`s6po93Jf#kcSGf0BJgbEoK%I=>t#BlDg#5Xk^)wx?M4CK-&LNU6pYIc-LkA4?>gK*ABnR50D z-IPm`hmflgfbmaG|GOIe!29wFqq0^h3RY=-+)*kKy&GE#4Qvhite3MwUOqEJF(`%(DIN2__rMY>CH84R7Vh$QzjTif(lVc4Wy-Q8=fnh>HQ2HOzr|F4m&u@yQ5~Hub{(+Tc z?UFV;(^)TuO#eYTo_NYLZZnUeKj{4RWB1gk+_7oAvv6;hiZ+*E8@(!GdNHGY|gY;V&i~#DMKnL-i5S+9? zjUhjBl%zv_9oRj$2)S`?moPsOvijQGcHcEbbZwkM_!d3EAKPdJ`0swHAa{`G7)P9& z+iKBXkt>b6_djcwNR*A=-@+yA2GITZ=Zn>4LXkkD>)jC_QDwj{NwAVZ)U0m-w<~5A z_<&;dq+jeaf(TfV3Ycm4SxH|e!3qadP8in5V8$~ZQoDIF@P!Gby^%jX?N*)~jIfUp z3y!&Eooyq2CIg8-cVa!aq@ujK!Et~QZkI34bmdUTR`hL;-}-!c`P!-;5Y~J0QJr>3 z;49qmms^1(&nSn*|W#Tkd|MH*(!X}RP(7KexgW2v|2pkK{cxMK8F5Mn^T zNlOE&oszXhaG#n$?1NUR#V=)gY0nypk_WTbttVyI2S zk{2~nntNvN?6=SMdfF9+~f%n(2nhcnn2c8V`a= z6;l6fTy36)st*UW`U-@t`Gp6Dbarmw+4$y{O zeeHp6E)!?CCg)Pr!yirH0G)@X@(37*I|zxSzos;OYrpCv`7LE8DS$A;Z&n@p8aFw%yv=QbJ8JYeuJqEr38w zQo9*CV*5e}#3`!UrJhiq1FwQH{Ze_5GwjwO?Y&a#U*br*i7NM>FFfPV>1FqV?>Ep@ zerZ^h_SQ>TaE#@nyKRUks#$=*f#1P@ct1xs`o2R`I>&gb6?@bv@BIL!POB2m1FH1S$;M+95pU8C?$6Ing(Uu1bP-c&(hv*22XrRI}p2C zmrR$!bJy&eFJB%_^Ye*yL=70DmFte~fcIZ|2-Jxt(rw?6Z=G*MxI}wc#T#92zmAGy zb=>B>oo2jz+gRRKIZ0u;H0*E;9j`}wOq@Bs-feJpb>$5lO<5(cti8^q1_hAB?LFBR z((w6d8j$J9M?Om?h(%ytYMarhrd^rS-8dXGKE5BZ9zuBzv79X?0r*0P+w=heUdCNV9Y%MHFg-}xKmcS^dXW%T&g>bP`*%u+PwQRu008v&KtS7?*j zo&vTw#ZP*)^x2CO+@T^zP2GJ{uRC;Mb33c2OR(uswJ|E8%w${MvZcdiyQAum!N+dyznT7m)} zjvySN(wbWNls@2H{o_=d&%7Mtsr7RvO>{-`*_os~!lz<`2#JK`ba8WJKh{M^2FRJ*QuTYx!aHIqASaQ zM=A~N+n*&7V@4?k`rYF7QqDg!la_>Ks_3KCmC!%_uK@f&Zs}MFad(f!+NG{YNV@1` z=6f3A7tLZs*z8wUBZARbQ*6GcNhJal-iL+vE?LCC~mnw{-n)z)gN z)I&7u(Z^h?nRhXq_oippJj`iz)29w9RESXG~-0S6o9k3?L!Qe8ix%>htq90LM z!DZM-<#=7SvXINCEbF&gM1P+aYO+&qFW`=#3#nXd`LXh**MzbDBblY6wLH?S>?k#b z@7Q^Yx)>k-;rW_>HU{kOT49(>7FmJqt!#8q+c$_?RiF|MDkww%@5rh#9EtVmnx`fd z&&x-{368IWXFBr{2uMVw3=|D=wQp~2Dn=>=eB&M)W`vYy#1T5^0@+vj$eK>y(6tVg zu4FzF>cG<+Cy9jxAb6{~%sZ1Ux4~d2md$JbbgFM^xzzpluJ=jfu6FtC7g3S9@P!RX+;MTO4(15^20Iu>4!it)DFd2;PE z{@^@Sewg!%J&3}O(X$|O`O-n>T(ZWU9(bR;yIeKnmn!40$TsUqYP*ZFBQ-Q?G_*%EA{3rqi5%nBA(XafI4L!MiH)gIgw34T{C&1USFst^kKX^LNtv)t5{Sf zLz(m}3pRW7@ik00TS71#;g~yanUcIZVzu$VUY#l54Q%U2Tawj813nR-nlqeLO{Nv= z%mr%HwAwvn>tnDzexlNQgl#Mv(YN!EwP6~*T%mi5ivaet5pdW@==iWO%cc)llo?Vn`)Oyl6j5mu)qEm zVdxQ+l>2HD96bdwzUVVzI}GLjZOeUILp?T{WlWW31{dO>d@b_85IQ%xe=dXpy7UC06 zo-F z;+-MTC@b9tf}vuSFRvv(rY0iK(}Se|(pTgiJ~6FVKkV#U77tL4{m71!uX3MORwG?o za7hfTDykl*2so+o#`${x?f>-Q@9(}N@Ew8g2z*E2I|APk_>RDL1pYq)hyI%SUv<&l Ae*gdg literal 0 HcmV?d00001 diff --git a/mux32to1by1.v b/mux32to1by1.v new file mode 100644 index 0000000..a252e39 --- /dev/null +++ b/mux32to1by1.v @@ -0,0 +1,12 @@ +// 32 single-bit inputs multiplexed to 1 single-bit output + +module mux32to1by1 +( +output out, +input[4:0] address, +input[31:0] inputs +); + + assign out = inputs[address]; + +endmodule diff --git a/mux32to1by32.v b/mux32to1by32.v new file mode 100644 index 0000000..073a5c1 --- /dev/null +++ b/mux32to1by32.v @@ -0,0 +1,47 @@ +// 32 32-bit inputs multiplexed to 1 32-bit output + +module mux32to1by32 +( +output[31:0] out, +input[4:0] address, +input[31:0] input0, input1, input2, input3, input4, input5, input6, input7, + input8, input9, input10, input11, input12, input13, input14, input15, input16, + input17, input18, input19, input20, input21, input22, input23, input24, input25, + input26, input27, input28, input29, input30, input31 +); + + wire[31:0] mux[31:0]; // Create a 2D array of wires + assign mux[0] = input0; // Connect the sources of the array + assign mux[1] = input1; + assign mux[2] = input2; + assign mux[3] = input3; + assign mux[4] = input4; + assign mux[5] = input5; + assign mux[6] = input6; + assign mux[7] = input7; + assign mux[8] = input8; + assign mux[9] = input9; + assign mux[10] = input10; + assign mux[11] = input11; + assign mux[12] = input12; + assign mux[13] = input13; + assign mux[14] = input14; + assign mux[15] = input15; + assign mux[16] = input16; + assign mux[17] = input17; + assign mux[18] = input18; + assign mux[19] = input19; + assign mux[20] = input20; + assign mux[21] = input21; + assign mux[22] = input22; + assign mux[23] = input23; + assign mux[24] = input24; + assign mux[25] = input25; + assign mux[26] = input26; + assign mux[27] = input27; + assign mux[28] = input28; + assign mux[29] = input29; + assign mux[30] = input30; + assign mux[31] = input31; + assign out = mux[address]; // Connect the output of the array +endmodule diff --git a/regfile.out b/regfile.out new file mode 100755 index 0000000..b5df4ed --- /dev/null +++ b/regfile.out @@ -0,0 +1,1200 @@ +#! /usr/bin/vvp +:ivl_version "0.9.7 " "(v0_9_7)"; +:vpi_time_precision + 0; +:vpi_module "system"; +:vpi_module "v2005_math"; +:vpi_module "va_math"; +S_0x2778ec0 .scope module, "hw4testbenchharness" "hw4testbenchharness" 2 8; + .timescale 0 0; +v0x27a4220_0 .net "Clk", 0 0, v0x274a130_0; 1 drivers +v0x27a42a0_0 .net "ReadData1", 31 0, L_0x27a8d80; 1 drivers +v0x27a4320_0 .net "ReadData2", 31 0, L_0x27aa2b0; 1 drivers +v0x27a43a0_0 .net "ReadRegister1", 4 0, v0x2794cb0_0; 1 drivers +v0x27a4420_0 .net "ReadRegister2", 4 0, v0x2794d60_0; 1 drivers +v0x27a44a0_0 .net "RegWrite", 0 0, v0x2794e00_0; 1 drivers +v0x27a4520_0 .net "WriteData", 31 0, v0x2794ee0_0; 1 drivers +v0x27a45a0_0 .net "WriteRegister", 4 0, v0x2794f80_0; 1 drivers +v0x27a4620_0 .var "begintest", 0 0; +v0x27a46a0_0 .net "dutpassed", 0 0, v0x27950f0_0; 1 drivers +v0x27a4780_0 .net "endtest", 0 0, v0x27951f0_0; 1 drivers +E_0x2754e50 .event posedge, v0x27951f0_0; +S_0x2795290 .scope module, "DUT" "regfile" 2 24, 3 14, S_0x2778ec0; + .timescale 0 0; +v0x27a3a70_0 .alias "Clk", 0 0, v0x27a4220_0; +v0x27a3af0_0 .alias "ReadData1", 31 0, v0x27a42a0_0; +v0x27a3b70_0 .alias "ReadData2", 31 0, v0x27a4320_0; +v0x27a3bf0_0 .alias "ReadRegister1", 4 0, v0x27a43a0_0; +v0x27a3c70_0 .alias "ReadRegister2", 4 0, v0x27a4420_0; +v0x27a3d40_0 .alias "RegWrite", 0 0, v0x27a44a0_0; +v0x27a3e10_0 .alias "WriteData", 31 0, v0x27a4520_0; +v0x27a3e90_0 .alias "WriteRegister", 4 0, v0x27a45a0_0; +v0x27a3fb0_0 .net "regEnable", 31 0, L_0x27a54b0; 1 drivers +v0x27a4030 .array "regOut", 0 31; +v0x27a4030_0 .net v0x27a4030 0, 31 0, v0x279faa0_0; 1 drivers +v0x27a4030_1 .net v0x27a4030 1, 31 0, v0x279efd0_0; 1 drivers +v0x27a4030_2 .net v0x27a4030 2, 31 0, v0x279eae0_0; 1 drivers +v0x27a4030_3 .net v0x27a4030 3, 31 0, v0x279e5f0_0; 1 drivers +v0x27a4030_4 .net v0x27a4030 4, 31 0, v0x279e100_0; 1 drivers +v0x27a4030_5 .net v0x27a4030 5, 31 0, v0x279dc10_0; 1 drivers +v0x27a4030_6 .net v0x27a4030 6, 31 0, v0x279d720_0; 1 drivers +v0x27a4030_7 .net v0x27a4030 7, 31 0, v0x279d230_0; 1 drivers +v0x27a4030_8 .net v0x27a4030 8, 31 0, v0x279cd40_0; 1 drivers +v0x27a4030_9 .net v0x27a4030 9, 31 0, v0x279c850_0; 1 drivers +v0x27a4030_10 .net v0x27a4030 10, 31 0, v0x279c360_0; 1 drivers +v0x27a4030_11 .net v0x27a4030 11, 31 0, v0x279be70_0; 1 drivers +v0x27a4030_12 .net v0x27a4030 12, 31 0, v0x279b980_0; 1 drivers +v0x27a4030_13 .net v0x27a4030 13, 31 0, v0x279b490_0; 1 drivers +v0x27a4030_14 .net v0x27a4030 14, 31 0, v0x279afa0_0; 1 drivers +v0x27a4030_15 .net v0x27a4030 15, 31 0, v0x279aab0_0; 1 drivers +v0x27a4030_16 .net v0x27a4030 16, 31 0, v0x2797b10_0; 1 drivers +v0x27a4030_17 .net v0x27a4030 17, 31 0, v0x2799ec0_0; 1 drivers +v0x27a4030_18 .net v0x27a4030 18, 31 0, v0x27999d0_0; 1 drivers +v0x27a4030_19 .net v0x27a4030 19, 31 0, v0x27994e0_0; 1 drivers +v0x27a4030_20 .net v0x27a4030 20, 31 0, v0x2798ff0_0; 1 drivers +v0x27a4030_21 .net v0x27a4030 21, 31 0, v0x2798b00_0; 1 drivers +v0x27a4030_22 .net v0x27a4030 22, 31 0, v0x2798610_0; 1 drivers +v0x27a4030_23 .net v0x27a4030 23, 31 0, v0x2798120_0; 1 drivers +v0x27a4030_24 .net v0x27a4030 24, 31 0, v0x27966c0_0; 1 drivers +v0x27a4030_25 .net v0x27a4030 25, 31 0, v0x2797620_0; 1 drivers +v0x27a4030_26 .net v0x27a4030 26, 31 0, v0x2797130_0; 1 drivers +v0x27a4030_27 .net v0x27a4030 27, 31 0, v0x2796c40_0; 1 drivers +v0x27a4030_28 .net v0x27a4030 28, 31 0, v0x2796750_0; 1 drivers +v0x27a4030_29 .net v0x27a4030 29, 31 0, v0x2796170_0; 1 drivers +v0x27a4030_30 .net v0x27a4030 30, 31 0, v0x2795cb0_0; 1 drivers +v0x27a4030_31 .net v0x27a4030 31, 31 0, v0x27957b0_0; 1 drivers +L_0x27a4800 .part L_0x27a54b0, 1, 1; +L_0x27a48a0 .part L_0x27a54b0, 2, 1; +L_0x27a4940 .part L_0x27a54b0, 3, 1; +L_0x27a4a70 .part L_0x27a54b0, 4, 1; +L_0x27a4b10 .part L_0x27a54b0, 5, 1; +L_0x27a4bb0 .part L_0x27a54b0, 6, 1; +L_0x27a4c50 .part L_0x27a54b0, 7, 1; +L_0x27a4e00 .part L_0x27a54b0, 8, 1; +L_0x27a4ea0 .part L_0x27a54b0, 9, 1; +L_0x27a4f40 .part L_0x27a54b0, 10, 1; +L_0x27a4fe0 .part L_0x27a54b0, 11, 1; +L_0x27a5080 .part L_0x27a54b0, 12, 1; +L_0x27a5120 .part L_0x27a54b0, 13, 1; +L_0x27a51c0 .part L_0x27a54b0, 14, 1; +L_0x27a52e0 .part L_0x27a54b0, 15, 1; +L_0x27a4cf0 .part L_0x27a54b0, 16, 1; +L_0x27a5620 .part L_0x27a54b0, 17, 1; +L_0x27a56c0 .part L_0x27a54b0, 18, 1; +L_0x27a5800 .part L_0x27a54b0, 19, 1; +L_0x27a58a0 .part L_0x27a54b0, 20, 1; +L_0x27a5760 .part L_0x27a54b0, 21, 1; +L_0x27a59f0 .part L_0x27a54b0, 22, 1; +L_0x27a5940 .part L_0x27a54b0, 23, 1; +L_0x27a5b50 .part L_0x27a54b0, 24, 1; +L_0x27a5a90 .part L_0x27a54b0, 25, 1; +L_0x27a5cc0 .part L_0x27a54b0, 26, 1; +L_0x27a5bf0 .part L_0x27a54b0, 27, 1; +L_0x27a5e40 .part L_0x27a54b0, 28, 1; +L_0x27a5d60 .part L_0x27a54b0, 29, 1; +L_0x27a5fd0 .part L_0x27a54b0, 30, 1; +L_0x27a5ee0 .part L_0x27a54b0, 31, 1; +L_0x27a6640 .part L_0x27a54b0, 0, 1; +S_0x279a330 .scope module, "decoder" "decoder1to32" 3 30, 4 5, S_0x2795290; + .timescale 0 0; +v0x279a420_0 .net *"_s0", 31 0, L_0x27a5380; 1 drivers +v0x279a4c0_0 .net *"_s3", 30 0, C4<0000000000000000000000000000000>; 1 drivers +v0x279a560_0 .alias "address", 4 0, v0x27a45a0_0; +v0x279a5e0_0 .alias "enable", 0 0, v0x27a44a0_0; +v0x279a660_0 .alias "out", 31 0, v0x27a3fb0_0; +L_0x27a5380 .concat [ 1 31 0 0], v0x2794e00_0, C4<0000000000000000000000000000000>; +L_0x27a54b0 .shift/l 32, L_0x27a5380, v0x2794f80_0; +S_0x27a2b70 .scope module, "register0" "register32zero" 3 32, 5 4, S_0x2795290; + .timescale 0 0; +v0x27a31d0_0 .alias "clk", 0 0, v0x27a4220_0; +v0x279f8e0_0 .alias "d", 31 0, v0x27a4520_0; +v0x279faa0_0 .var "q", 31 0; +v0x279fe50_0 .net "wrenable", 0 0, L_0x27a6640; 1 drivers +S_0x27a0bc0 .scope module, "multiplexer1" "mux32to1by32" 3 39, 6 3, S_0x2795290; + .timescale 0 0; +L_0x27a5260 .functor BUFZ 32, v0x279faa0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a0660 .functor BUFZ 32, v0x279efd0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a6880 .functor BUFZ 32, v0x279eae0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a6970 .functor BUFZ 32, v0x279e5f0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a6a90 .functor BUFZ 32, v0x279e100_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a6bb0 .functor BUFZ 32, v0x279dc10_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a6d10 .functor BUFZ 32, v0x279d720_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a6e00 .functor BUFZ 32, v0x279d230_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a6f20 .functor BUFZ 32, v0x279cd40_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a7010 .functor BUFZ 32, v0x279c850_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a7190 .functor BUFZ 32, v0x279c360_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a72b0 .functor BUFZ 32, v0x279be70_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a7130 .functor BUFZ 32, v0x279b980_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a7500 .functor BUFZ 32, v0x279b490_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a76a0 .functor BUFZ 32, v0x279afa0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a77c0 .functor BUFZ 32, v0x279aab0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a7970 .functor BUFZ 32, v0x2797b10_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a7a90 .functor BUFZ 32, v0x2799ec0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a78e0 .functor BUFZ 32, v0x27999d0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a7ce0 .functor BUFZ 32, v0x27994e0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a7bb0 .functor BUFZ 32, v0x2798ff0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a7f40 .functor BUFZ 32, v0x2798b00_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a7e00 .functor BUFZ 32, v0x2798610_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a81b0 .functor BUFZ 32, v0x2798120_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a8060 .functor BUFZ 32, v0x27966c0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a8430 .functor BUFZ 32, v0x2797620_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a82d0 .functor BUFZ 32, v0x2797130_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a8690 .functor BUFZ 32, v0x2796c40_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a1f60 .functor BUFZ 32, v0x2796750_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a8870 .functor BUFZ 32, v0x2796170_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a8780 .functor BUFZ 32, v0x2795cb0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a8810 .functor BUFZ 32, v0x27957b0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a8d80 .functor BUFZ 32, L_0x27a8990, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +v0x27a0fa0_0 .net *"_s96", 31 0, L_0x27a8990; 1 drivers +v0x27a1020_0 .alias "address", 4 0, v0x27a43a0_0; +v0x27a10a0_0 .alias "input0", 31 0, v0x27a4030_0; +v0x27a1120_0 .alias "input1", 31 0, v0x27a4030_1; +v0x27a11d0_0 .alias "input10", 31 0, v0x27a4030_10; +v0x27a1250_0 .alias "input11", 31 0, v0x27a4030_11; +v0x27a1320_0 .alias "input12", 31 0, v0x27a4030_12; +v0x27a13f0_0 .alias "input13", 31 0, v0x27a4030_13; +v0x27a1510_0 .alias "input14", 31 0, v0x27a4030_14; +v0x27a15e0_0 .alias "input15", 31 0, v0x27a4030_15; +v0x27a1660_0 .alias "input16", 31 0, v0x27a4030_16; +v0x27a1730_0 .alias "input17", 31 0, v0x27a4030_17; +v0x27a1800_0 .alias "input18", 31 0, v0x27a4030_18; +v0x27a18d0_0 .alias "input19", 31 0, v0x27a4030_19; +v0x27a1a20_0 .alias "input2", 31 0, v0x27a4030_2; +v0x27a1af0_0 .alias "input20", 31 0, v0x27a4030_20; +v0x27a1950_0 .alias "input21", 31 0, v0x27a4030_21; +v0x27a1ca0_0 .alias "input22", 31 0, v0x27a4030_22; +v0x27a1dc0_0 .alias "input23", 31 0, v0x27a4030_23; +v0x27a1e90_0 .alias "input24", 31 0, v0x27a4030_24; +v0x27a1fc0_0 .alias "input25", 31 0, v0x27a4030_25; +v0x27a2040_0 .alias "input26", 31 0, v0x27a4030_26; +v0x27a2180_0 .alias "input27", 31 0, v0x27a4030_27; +v0x27a2200_0 .alias "input28", 31 0, v0x27a4030_28; +v0x27a2350_0 .alias "input29", 31 0, v0x27a4030_29; +v0x27a23d0_0 .alias "input3", 31 0, v0x27a4030_3; +v0x27a22d0_0 .alias "input30", 31 0, v0x27a4030_30; +v0x27a2580_0 .alias "input31", 31 0, v0x27a4030_31; +v0x27a24a0_0 .alias "input4", 31 0, v0x27a4030_4; +v0x27a2740_0 .alias "input5", 31 0, v0x27a4030_5; +v0x27a2650_0 .alias "input6", 31 0, v0x27a4030_6; +v0x27a2910_0 .alias "input7", 31 0, v0x27a4030_7; +v0x27a2810_0 .alias "input8", 31 0, v0x27a4030_8; +v0x27a2af0_0 .alias "input9", 31 0, v0x27a4030_9; +v0x27a29e0 .array "mux", 0 31; +v0x27a29e0_0 .net v0x27a29e0 0, 31 0, L_0x27a5260; 1 drivers +v0x27a29e0_1 .net v0x27a29e0 1, 31 0, L_0x27a0660; 1 drivers +v0x27a29e0_2 .net v0x27a29e0 2, 31 0, L_0x27a6880; 1 drivers +v0x27a29e0_3 .net v0x27a29e0 3, 31 0, L_0x27a6970; 1 drivers +v0x27a29e0_4 .net v0x27a29e0 4, 31 0, L_0x27a6a90; 1 drivers +v0x27a29e0_5 .net v0x27a29e0 5, 31 0, L_0x27a6bb0; 1 drivers +v0x27a29e0_6 .net v0x27a29e0 6, 31 0, L_0x27a6d10; 1 drivers +v0x27a29e0_7 .net v0x27a29e0 7, 31 0, L_0x27a6e00; 1 drivers +v0x27a29e0_8 .net v0x27a29e0 8, 31 0, L_0x27a6f20; 1 drivers +v0x27a29e0_9 .net v0x27a29e0 9, 31 0, L_0x27a7010; 1 drivers +v0x27a29e0_10 .net v0x27a29e0 10, 31 0, L_0x27a7190; 1 drivers +v0x27a29e0_11 .net v0x27a29e0 11, 31 0, L_0x27a72b0; 1 drivers +v0x27a29e0_12 .net v0x27a29e0 12, 31 0, L_0x27a7130; 1 drivers +v0x27a29e0_13 .net v0x27a29e0 13, 31 0, L_0x27a7500; 1 drivers +v0x27a29e0_14 .net v0x27a29e0 14, 31 0, L_0x27a76a0; 1 drivers +v0x27a29e0_15 .net v0x27a29e0 15, 31 0, L_0x27a77c0; 1 drivers +v0x27a29e0_16 .net v0x27a29e0 16, 31 0, L_0x27a7970; 1 drivers +v0x27a29e0_17 .net v0x27a29e0 17, 31 0, L_0x27a7a90; 1 drivers +v0x27a29e0_18 .net v0x27a29e0 18, 31 0, L_0x27a78e0; 1 drivers +v0x27a29e0_19 .net v0x27a29e0 19, 31 0, L_0x27a7ce0; 1 drivers +v0x27a29e0_20 .net v0x27a29e0 20, 31 0, L_0x27a7bb0; 1 drivers +v0x27a29e0_21 .net v0x27a29e0 21, 31 0, L_0x27a7f40; 1 drivers +v0x27a29e0_22 .net v0x27a29e0 22, 31 0, L_0x27a7e00; 1 drivers +v0x27a29e0_23 .net v0x27a29e0 23, 31 0, L_0x27a81b0; 1 drivers +v0x27a29e0_24 .net v0x27a29e0 24, 31 0, L_0x27a8060; 1 drivers +v0x27a29e0_25 .net v0x27a29e0 25, 31 0, L_0x27a8430; 1 drivers +v0x27a29e0_26 .net v0x27a29e0 26, 31 0, L_0x27a82d0; 1 drivers +v0x27a29e0_27 .net v0x27a29e0 27, 31 0, L_0x27a8690; 1 drivers +v0x27a29e0_28 .net v0x27a29e0 28, 31 0, L_0x27a1f60; 1 drivers +v0x27a29e0_29 .net v0x27a29e0 29, 31 0, L_0x27a8870; 1 drivers +v0x27a29e0_30 .net v0x27a29e0 30, 31 0, L_0x27a8780; 1 drivers +v0x27a29e0_31 .net v0x27a29e0 31, 31 0, L_0x27a8810; 1 drivers +v0x27a3020_0 .alias "out", 31 0, v0x27a42a0_0; +L_0x27a8990 .array/port v0x27a29e0, v0x2794cb0_0; +S_0x279f120 .scope module, "multiplexer2" "mux32to1by32" 3 46, 6 3, S_0x2795290; + .timescale 0 0; +L_0x279f480 .functor BUFZ 32, v0x279faa0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a8e70 .functor BUFZ 32, v0x279efd0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a8ed0 .functor BUFZ 32, v0x279eae0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a8f60 .functor BUFZ 32, v0x279e5f0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a9020 .functor BUFZ 32, v0x279e100_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a90b0 .functor BUFZ 32, v0x279dc10_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a9140 .functor BUFZ 32, v0x279d720_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a91a0 .functor BUFZ 32, v0x279d230_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a9230 .functor BUFZ 32, v0x279cd40_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a92c0 .functor BUFZ 32, v0x279c850_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a93b0 .functor BUFZ 32, v0x279c360_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a9440 .functor BUFZ 32, v0x279be70_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a9350 .functor BUFZ 32, v0x279b980_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a9500 .functor BUFZ 32, v0x279b490_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a9590 .functor BUFZ 32, v0x279afa0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a9620 .functor BUFZ 32, v0x279aab0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a9740 .functor BUFZ 32, v0x2797b10_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a97d0 .functor BUFZ 32, v0x2799ec0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a96b0 .functor BUFZ 32, v0x27999d0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a9900 .functor BUFZ 32, v0x27994e0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a9860 .functor BUFZ 32, v0x2798ff0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a9a40 .functor BUFZ 32, v0x2798b00_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a9990 .functor BUFZ 32, v0x2798610_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a9b90 .functor BUFZ 32, v0x2798120_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a9ad0 .functor BUFZ 32, v0x27966c0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a9cf0 .functor BUFZ 32, v0x2797620_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a9c20 .functor BUFZ 32, v0x2797130_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a9e30 .functor BUFZ 32, v0x2796c40_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a9d50 .functor BUFZ 32, v0x2796750_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a9f80 .functor BUFZ 32, v0x2796170_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a9e90 .functor BUFZ 32, v0x2795cb0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27a9f20 .functor BUFZ 32, v0x27957b0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +L_0x27aa2b0 .functor BUFZ 32, L_0x27a9fe0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; +v0x279f210_0 .net *"_s96", 31 0, L_0x27a9fe0; 1 drivers +v0x279f2d0_0 .alias "address", 4 0, v0x27a4420_0; +v0x279f380_0 .alias "input0", 31 0, v0x27a4030_0; +v0x279f400_0 .alias "input1", 31 0, v0x27a4030_1; +v0x279f4e0_0 .alias "input10", 31 0, v0x27a4030_10; +v0x279f590_0 .alias "input11", 31 0, v0x27a4030_11; +v0x279f650_0 .alias "input12", 31 0, v0x27a4030_12; +v0x279f700_0 .alias "input13", 31 0, v0x27a4030_13; +v0x279f7b0_0 .alias "input14", 31 0, v0x27a4030_14; +v0x279f860_0 .alias "input15", 31 0, v0x27a4030_15; +v0x279f970_0 .alias "input16", 31 0, v0x27a4030_16; +v0x279fa20_0 .alias "input17", 31 0, v0x27a4030_17; +v0x279fb40_0 .alias "input18", 31 0, v0x27a4030_18; +v0x279fbf0_0 .alias "input19", 31 0, v0x27a4030_19; +v0x279fd20_0 .alias "input2", 31 0, v0x27a4030_2; +v0x279fdd0_0 .alias "input20", 31 0, v0x27a4030_20; +v0x279fc70_0 .alias "input21", 31 0, v0x27a4030_21; +v0x279ff40_0 .alias "input22", 31 0, v0x27a4030_22; +v0x27a0060_0 .alias "input23", 31 0, v0x27a4030_23; +v0x27a00e0_0 .alias "input24", 31 0, v0x27a4030_24; +v0x279ffc0_0 .alias "input25", 31 0, v0x27a4030_25; +v0x27a0240_0 .alias "input26", 31 0, v0x27a4030_26; +v0x27a0190_0 .alias "input27", 31 0, v0x27a4030_27; +v0x27a03b0_0 .alias "input28", 31 0, v0x27a4030_28; +v0x27a02f0_0 .alias "input29", 31 0, v0x27a4030_29; +v0x27a0530_0 .alias "input3", 31 0, v0x27a4030_3; +v0x27a0460_0 .alias "input30", 31 0, v0x27a4030_30; +v0x27a06c0_0 .alias "input31", 31 0, v0x27a4030_31; +v0x27a05e0_0 .alias "input4", 31 0, v0x27a4030_4; +v0x27a0830_0 .alias "input5", 31 0, v0x27a4030_5; +v0x27a0770_0 .alias "input6", 31 0, v0x27a4030_6; +v0x27a09b0_0 .alias "input7", 31 0, v0x27a4030_7; +v0x27a08e0_0 .alias "input8", 31 0, v0x27a4030_8; +v0x27a0b40_0 .alias "input9", 31 0, v0x27a4030_9; +v0x27a0a60 .array "mux", 0 31; +v0x27a0a60_0 .net v0x27a0a60 0, 31 0, L_0x279f480; 1 drivers +v0x27a0a60_1 .net v0x27a0a60 1, 31 0, L_0x27a8e70; 1 drivers +v0x27a0a60_2 .net v0x27a0a60 2, 31 0, L_0x27a8ed0; 1 drivers +v0x27a0a60_3 .net v0x27a0a60 3, 31 0, L_0x27a8f60; 1 drivers +v0x27a0a60_4 .net v0x27a0a60 4, 31 0, L_0x27a9020; 1 drivers +v0x27a0a60_5 .net v0x27a0a60 5, 31 0, L_0x27a90b0; 1 drivers +v0x27a0a60_6 .net v0x27a0a60 6, 31 0, L_0x27a9140; 1 drivers +v0x27a0a60_7 .net v0x27a0a60 7, 31 0, L_0x27a91a0; 1 drivers +v0x27a0a60_8 .net v0x27a0a60 8, 31 0, L_0x27a9230; 1 drivers +v0x27a0a60_9 .net v0x27a0a60 9, 31 0, L_0x27a92c0; 1 drivers +v0x27a0a60_10 .net v0x27a0a60 10, 31 0, L_0x27a93b0; 1 drivers +v0x27a0a60_11 .net v0x27a0a60 11, 31 0, L_0x27a9440; 1 drivers +v0x27a0a60_12 .net v0x27a0a60 12, 31 0, L_0x27a9350; 1 drivers +v0x27a0a60_13 .net v0x27a0a60 13, 31 0, L_0x27a9500; 1 drivers +v0x27a0a60_14 .net v0x27a0a60 14, 31 0, L_0x27a9590; 1 drivers +v0x27a0a60_15 .net v0x27a0a60 15, 31 0, L_0x27a9620; 1 drivers +v0x27a0a60_16 .net v0x27a0a60 16, 31 0, L_0x27a9740; 1 drivers +v0x27a0a60_17 .net v0x27a0a60 17, 31 0, L_0x27a97d0; 1 drivers +v0x27a0a60_18 .net v0x27a0a60 18, 31 0, L_0x27a96b0; 1 drivers +v0x27a0a60_19 .net v0x27a0a60 19, 31 0, L_0x27a9900; 1 drivers +v0x27a0a60_20 .net v0x27a0a60 20, 31 0, L_0x27a9860; 1 drivers +v0x27a0a60_21 .net v0x27a0a60 21, 31 0, L_0x27a9a40; 1 drivers +v0x27a0a60_22 .net v0x27a0a60 22, 31 0, L_0x27a9990; 1 drivers +v0x27a0a60_23 .net v0x27a0a60 23, 31 0, L_0x27a9b90; 1 drivers +v0x27a0a60_24 .net v0x27a0a60 24, 31 0, L_0x27a9ad0; 1 drivers +v0x27a0a60_25 .net v0x27a0a60 25, 31 0, L_0x27a9cf0; 1 drivers +v0x27a0a60_26 .net v0x27a0a60 26, 31 0, L_0x27a9c20; 1 drivers +v0x27a0a60_27 .net v0x27a0a60 27, 31 0, L_0x27a9e30; 1 drivers +v0x27a0a60_28 .net v0x27a0a60 28, 31 0, L_0x27a9d50; 1 drivers +v0x27a0a60_29 .net v0x27a0a60 29, 31 0, L_0x27a9f80; 1 drivers +v0x27a0a60_30 .net v0x27a0a60 30, 31 0, L_0x27a9e90; 1 drivers +v0x27a0a60_31 .net v0x27a0a60 31, 31 0, L_0x27a9f20; 1 drivers +v0x27a0df0_0 .alias "out", 31 0, v0x27a4320_0; +L_0x27a9fe0 .array/port v0x27a0a60, v0x2794d60_0; +S_0x279ec30 .scope generate, "register_generate[1]" "register_generate[1]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x279ed28 .param/l "i" 3 34, +C4<01>; +S_0x279ede0 .scope module, "register" "register32" 3 35, 7 4, S_0x279ec30; + .timescale 0 0; +v0x279eed0_0 .alias "clk", 0 0, v0x27a4220_0; +v0x279ef50_0 .alias "d", 31 0, v0x27a4520_0; +v0x279efd0_0 .var "q", 31 0; +v0x279f070_0 .net "wrenable", 0 0, L_0x27a4800; 1 drivers +S_0x279e740 .scope generate, "register_generate[2]" "register_generate[2]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x279e838 .param/l "i" 3 34, +C4<010>; +S_0x279e8f0 .scope module, "register" "register32" 3 35, 7 4, S_0x279e740; + .timescale 0 0; +v0x279e9e0_0 .alias "clk", 0 0, v0x27a4220_0; +v0x279ea60_0 .alias "d", 31 0, v0x27a4520_0; +v0x279eae0_0 .var "q", 31 0; +v0x279eb80_0 .net "wrenable", 0 0, L_0x27a48a0; 1 drivers +S_0x279e250 .scope generate, "register_generate[3]" "register_generate[3]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x279e348 .param/l "i" 3 34, +C4<011>; +S_0x279e400 .scope module, "register" "register32" 3 35, 7 4, S_0x279e250; + .timescale 0 0; +v0x279e4f0_0 .alias "clk", 0 0, v0x27a4220_0; +v0x279e570_0 .alias "d", 31 0, v0x27a4520_0; +v0x279e5f0_0 .var "q", 31 0; +v0x279e690_0 .net "wrenable", 0 0, L_0x27a4940; 1 drivers +S_0x279dd60 .scope generate, "register_generate[4]" "register_generate[4]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x279de58 .param/l "i" 3 34, +C4<0100>; +S_0x279df10 .scope module, "register" "register32" 3 35, 7 4, S_0x279dd60; + .timescale 0 0; +v0x279e000_0 .alias "clk", 0 0, v0x27a4220_0; +v0x279e080_0 .alias "d", 31 0, v0x27a4520_0; +v0x279e100_0 .var "q", 31 0; +v0x279e1a0_0 .net "wrenable", 0 0, L_0x27a4a70; 1 drivers +S_0x279d870 .scope generate, "register_generate[5]" "register_generate[5]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x279d968 .param/l "i" 3 34, +C4<0101>; +S_0x279da20 .scope module, "register" "register32" 3 35, 7 4, S_0x279d870; + .timescale 0 0; +v0x279db10_0 .alias "clk", 0 0, v0x27a4220_0; +v0x279db90_0 .alias "d", 31 0, v0x27a4520_0; +v0x279dc10_0 .var "q", 31 0; +v0x279dcb0_0 .net "wrenable", 0 0, L_0x27a4b10; 1 drivers +S_0x279d380 .scope generate, "register_generate[6]" "register_generate[6]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x279d478 .param/l "i" 3 34, +C4<0110>; +S_0x279d530 .scope module, "register" "register32" 3 35, 7 4, S_0x279d380; + .timescale 0 0; +v0x279d620_0 .alias "clk", 0 0, v0x27a4220_0; +v0x279d6a0_0 .alias "d", 31 0, v0x27a4520_0; +v0x279d720_0 .var "q", 31 0; +v0x279d7c0_0 .net "wrenable", 0 0, L_0x27a4bb0; 1 drivers +S_0x279ce90 .scope generate, "register_generate[7]" "register_generate[7]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x279cf88 .param/l "i" 3 34, +C4<0111>; +S_0x279d040 .scope module, "register" "register32" 3 35, 7 4, S_0x279ce90; + .timescale 0 0; +v0x279d130_0 .alias "clk", 0 0, v0x27a4220_0; +v0x279d1b0_0 .alias "d", 31 0, v0x27a4520_0; +v0x279d230_0 .var "q", 31 0; +v0x279d2d0_0 .net "wrenable", 0 0, L_0x27a4c50; 1 drivers +S_0x279c9a0 .scope generate, "register_generate[8]" "register_generate[8]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x279ca98 .param/l "i" 3 34, +C4<01000>; +S_0x279cb50 .scope module, "register" "register32" 3 35, 7 4, S_0x279c9a0; + .timescale 0 0; +v0x279cc40_0 .alias "clk", 0 0, v0x27a4220_0; +v0x279ccc0_0 .alias "d", 31 0, v0x27a4520_0; +v0x279cd40_0 .var "q", 31 0; +v0x279cde0_0 .net "wrenable", 0 0, L_0x27a4e00; 1 drivers +S_0x279c4b0 .scope generate, "register_generate[9]" "register_generate[9]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x279c5a8 .param/l "i" 3 34, +C4<01001>; +S_0x279c660 .scope module, "register" "register32" 3 35, 7 4, S_0x279c4b0; + .timescale 0 0; +v0x279c750_0 .alias "clk", 0 0, v0x27a4220_0; +v0x279c7d0_0 .alias "d", 31 0, v0x27a4520_0; +v0x279c850_0 .var "q", 31 0; +v0x279c8f0_0 .net "wrenable", 0 0, L_0x27a4ea0; 1 drivers +S_0x279bfc0 .scope generate, "register_generate[10]" "register_generate[10]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x279c0b8 .param/l "i" 3 34, +C4<01010>; +S_0x279c170 .scope module, "register" "register32" 3 35, 7 4, S_0x279bfc0; + .timescale 0 0; +v0x279c260_0 .alias "clk", 0 0, v0x27a4220_0; +v0x279c2e0_0 .alias "d", 31 0, v0x27a4520_0; +v0x279c360_0 .var "q", 31 0; +v0x279c400_0 .net "wrenable", 0 0, L_0x27a4f40; 1 drivers +S_0x279bad0 .scope generate, "register_generate[11]" "register_generate[11]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x279bbc8 .param/l "i" 3 34, +C4<01011>; +S_0x279bc80 .scope module, "register" "register32" 3 35, 7 4, S_0x279bad0; + .timescale 0 0; +v0x279bd70_0 .alias "clk", 0 0, v0x27a4220_0; +v0x279bdf0_0 .alias "d", 31 0, v0x27a4520_0; +v0x279be70_0 .var "q", 31 0; +v0x279bf10_0 .net "wrenable", 0 0, L_0x27a4fe0; 1 drivers +S_0x279b5e0 .scope generate, "register_generate[12]" "register_generate[12]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x279b6d8 .param/l "i" 3 34, +C4<01100>; +S_0x279b790 .scope module, "register" "register32" 3 35, 7 4, S_0x279b5e0; + .timescale 0 0; +v0x279b880_0 .alias "clk", 0 0, v0x27a4220_0; +v0x279b900_0 .alias "d", 31 0, v0x27a4520_0; +v0x279b980_0 .var "q", 31 0; +v0x279ba20_0 .net "wrenable", 0 0, L_0x27a5080; 1 drivers +S_0x279b0f0 .scope generate, "register_generate[13]" "register_generate[13]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x279b1e8 .param/l "i" 3 34, +C4<01101>; +S_0x279b2a0 .scope module, "register" "register32" 3 35, 7 4, S_0x279b0f0; + .timescale 0 0; +v0x279b390_0 .alias "clk", 0 0, v0x27a4220_0; +v0x279b410_0 .alias "d", 31 0, v0x27a4520_0; +v0x279b490_0 .var "q", 31 0; +v0x279b530_0 .net "wrenable", 0 0, L_0x27a5120; 1 drivers +S_0x279ac00 .scope generate, "register_generate[14]" "register_generate[14]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x279acf8 .param/l "i" 3 34, +C4<01110>; +S_0x279adb0 .scope module, "register" "register32" 3 35, 7 4, S_0x279ac00; + .timescale 0 0; +v0x279aea0_0 .alias "clk", 0 0, v0x27a4220_0; +v0x279af20_0 .alias "d", 31 0, v0x27a4520_0; +v0x279afa0_0 .var "q", 31 0; +v0x279b040_0 .net "wrenable", 0 0, L_0x27a51c0; 1 drivers +S_0x279a750 .scope generate, "register_generate[15]" "register_generate[15]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x2797c68 .param/l "i" 3 34, +C4<01111>; +S_0x279a8c0 .scope module, "register" "register32" 3 35, 7 4, S_0x279a750; + .timescale 0 0; +v0x279a9b0_0 .alias "clk", 0 0, v0x27a4220_0; +v0x279aa30_0 .alias "d", 31 0, v0x27a4520_0; +v0x279aab0_0 .var "q", 31 0; +v0x279ab50_0 .net "wrenable", 0 0, L_0x27a52e0; 1 drivers +S_0x279a010 .scope generate, "register_generate[16]" "register_generate[16]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x279a108 .param/l "i" 3 34, +C4<010000>; +S_0x279a1c0 .scope module, "register" "register32" 3 35, 7 4, S_0x279a010; + .timescale 0 0; +v0x279a2b0_0 .alias "clk", 0 0, v0x27a4220_0; +v0x2797a90_0 .alias "d", 31 0, v0x27a4520_0; +v0x2797b10_0 .var "q", 31 0; +v0x2797bb0_0 .net "wrenable", 0 0, L_0x27a4cf0; 1 drivers +S_0x2799b20 .scope generate, "register_generate[17]" "register_generate[17]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x2799c18 .param/l "i" 3 34, +C4<010001>; +S_0x2799cd0 .scope module, "register" "register32" 3 35, 7 4, S_0x2799b20; + .timescale 0 0; +v0x2799dc0_0 .alias "clk", 0 0, v0x27a4220_0; +v0x2799e40_0 .alias "d", 31 0, v0x27a4520_0; +v0x2799ec0_0 .var "q", 31 0; +v0x2799f60_0 .net "wrenable", 0 0, L_0x27a5620; 1 drivers +S_0x2799630 .scope generate, "register_generate[18]" "register_generate[18]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x2799728 .param/l "i" 3 34, +C4<010010>; +S_0x27997e0 .scope module, "register" "register32" 3 35, 7 4, S_0x2799630; + .timescale 0 0; +v0x27998d0_0 .alias "clk", 0 0, v0x27a4220_0; +v0x2799950_0 .alias "d", 31 0, v0x27a4520_0; +v0x27999d0_0 .var "q", 31 0; +v0x2799a70_0 .net "wrenable", 0 0, L_0x27a56c0; 1 drivers +S_0x2799140 .scope generate, "register_generate[19]" "register_generate[19]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x2799238 .param/l "i" 3 34, +C4<010011>; +S_0x27992f0 .scope module, "register" "register32" 3 35, 7 4, S_0x2799140; + .timescale 0 0; +v0x27993e0_0 .alias "clk", 0 0, v0x27a4220_0; +v0x2799460_0 .alias "d", 31 0, v0x27a4520_0; +v0x27994e0_0 .var "q", 31 0; +v0x2799580_0 .net "wrenable", 0 0, L_0x27a5800; 1 drivers +S_0x2798c50 .scope generate, "register_generate[20]" "register_generate[20]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x2798d48 .param/l "i" 3 34, +C4<010100>; +S_0x2798e00 .scope module, "register" "register32" 3 35, 7 4, S_0x2798c50; + .timescale 0 0; +v0x2798ef0_0 .alias "clk", 0 0, v0x27a4220_0; +v0x2798f70_0 .alias "d", 31 0, v0x27a4520_0; +v0x2798ff0_0 .var "q", 31 0; +v0x2799090_0 .net "wrenable", 0 0, L_0x27a58a0; 1 drivers +S_0x2798760 .scope generate, "register_generate[21]" "register_generate[21]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x2798858 .param/l "i" 3 34, +C4<010101>; +S_0x2798910 .scope module, "register" "register32" 3 35, 7 4, S_0x2798760; + .timescale 0 0; +v0x2798a00_0 .alias "clk", 0 0, v0x27a4220_0; +v0x2798a80_0 .alias "d", 31 0, v0x27a4520_0; +v0x2798b00_0 .var "q", 31 0; +v0x2798ba0_0 .net "wrenable", 0 0, L_0x27a5760; 1 drivers +S_0x2798270 .scope generate, "register_generate[22]" "register_generate[22]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x2798368 .param/l "i" 3 34, +C4<010110>; +S_0x2798420 .scope module, "register" "register32" 3 35, 7 4, S_0x2798270; + .timescale 0 0; +v0x2798510_0 .alias "clk", 0 0, v0x27a4220_0; +v0x2798590_0 .alias "d", 31 0, v0x27a4520_0; +v0x2798610_0 .var "q", 31 0; +v0x27986b0_0 .net "wrenable", 0 0, L_0x27a59f0; 1 drivers +S_0x2797d80 .scope generate, "register_generate[23]" "register_generate[23]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x2797e78 .param/l "i" 3 34, +C4<010111>; +S_0x2797f30 .scope module, "register" "register32" 3 35, 7 4, S_0x2797d80; + .timescale 0 0; +v0x2798020_0 .alias "clk", 0 0, v0x27a4220_0; +v0x27980a0_0 .alias "d", 31 0, v0x27a4520_0; +v0x2798120_0 .var "q", 31 0; +v0x27981c0_0 .net "wrenable", 0 0, L_0x27a5940; 1 drivers +S_0x2797770 .scope generate, "register_generate[24]" "register_generate[24]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x2797868 .param/l "i" 3 34, +C4<011000>; +S_0x2797920 .scope module, "register" "register32" 3 35, 7 4, S_0x2797770; + .timescale 0 0; +v0x2797a10_0 .alias "clk", 0 0, v0x27a4220_0; +v0x27965b0_0 .alias "d", 31 0, v0x27a4520_0; +v0x27966c0_0 .var "q", 31 0; +v0x2797cd0_0 .net "wrenable", 0 0, L_0x27a5b50; 1 drivers +S_0x2797280 .scope generate, "register_generate[25]" "register_generate[25]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x2797378 .param/l "i" 3 34, +C4<011001>; +S_0x2797430 .scope module, "register" "register32" 3 35, 7 4, S_0x2797280; + .timescale 0 0; +v0x2797520_0 .alias "clk", 0 0, v0x27a4220_0; +v0x27975a0_0 .alias "d", 31 0, v0x27a4520_0; +v0x2797620_0 .var "q", 31 0; +v0x27976c0_0 .net "wrenable", 0 0, L_0x27a5a90; 1 drivers +S_0x2796d90 .scope generate, "register_generate[26]" "register_generate[26]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x2796e88 .param/l "i" 3 34, +C4<011010>; +S_0x2796f40 .scope module, "register" "register32" 3 35, 7 4, S_0x2796d90; + .timescale 0 0; +v0x2797030_0 .alias "clk", 0 0, v0x27a4220_0; +v0x27970b0_0 .alias "d", 31 0, v0x27a4520_0; +v0x2797130_0 .var "q", 31 0; +v0x27971d0_0 .net "wrenable", 0 0, L_0x27a5cc0; 1 drivers +S_0x27968a0 .scope generate, "register_generate[27]" "register_generate[27]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x2796998 .param/l "i" 3 34, +C4<011011>; +S_0x2796a50 .scope module, "register" "register32" 3 35, 7 4, S_0x27968a0; + .timescale 0 0; +v0x2796b40_0 .alias "clk", 0 0, v0x27a4220_0; +v0x2796bc0_0 .alias "d", 31 0, v0x27a4520_0; +v0x2796c40_0 .var "q", 31 0; +v0x2796ce0_0 .net "wrenable", 0 0, L_0x27a5bf0; 1 drivers +S_0x2796290 .scope generate, "register_generate[28]" "register_generate[28]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x2796388 .param/l "i" 3 34, +C4<011100>; +S_0x2796440 .scope module, "register" "register32" 3 35, 7 4, S_0x2796290; + .timescale 0 0; +v0x2796530_0 .alias "clk", 0 0, v0x27a4220_0; +v0x2796640_0 .alias "d", 31 0, v0x27a4520_0; +v0x2796750_0 .var "q", 31 0; +v0x27967f0_0 .net "wrenable", 0 0, L_0x27a5e40; 1 drivers +S_0x2795dd0 .scope generate, "register_generate[29]" "register_generate[29]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x2795ec8 .param/l "i" 3 34, +C4<011101>; +S_0x2795f80 .scope module, "register" "register32" 3 35, 7 4, S_0x2795dd0; + .timescale 0 0; +v0x2796070_0 .alias "clk", 0 0, v0x27a4220_0; +v0x27960f0_0 .alias "d", 31 0, v0x27a4520_0; +v0x2796170_0 .var "q", 31 0; +v0x2796210_0 .net "wrenable", 0 0, L_0x27a5d60; 1 drivers +S_0x27958e0 .scope generate, "register_generate[30]" "register_generate[30]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x27959d8 .param/l "i" 3 34, +C4<011110>; +S_0x2795a70 .scope module, "register" "register32" 3 35, 7 4, S_0x27958e0; + .timescale 0 0; +v0x2795b60_0 .alias "clk", 0 0, v0x27a4220_0; +v0x2795be0_0 .alias "d", 31 0, v0x27a4520_0; +v0x2795cb0_0 .var "q", 31 0; +v0x2795d50_0 .net "wrenable", 0 0, L_0x27a5fd0; 1 drivers +S_0x2795380 .scope generate, "register_generate[31]" "register_generate[31]" 3 34, 3 34, S_0x2795290; + .timescale 0 0; +P_0x2794e88 .param/l "i" 3 34, +C4<011111>; +S_0x27954f0 .scope module, "register" "register32" 3 35, 7 4, S_0x2795380; + .timescale 0 0; +v0x2795630_0 .alias "clk", 0 0, v0x27a4220_0; +v0x2795700_0 .alias "d", 31 0, v0x27a4520_0; +v0x27957b0_0 .var "q", 31 0; +v0x2795830_0 .net "wrenable", 0 0, L_0x27a5ee0; 1 drivers +E_0x27955e0 .event posedge, v0x274a130_0; +S_0x2778d40 .scope module, "tester" "hw4testbench" 2 37, 2 79, S_0x2778ec0; + .timescale 0 0; +v0x274a130_0 .var "Clk", 0 0; +v0x2794b70_0 .alias "ReadData1", 31 0, v0x27a42a0_0; +v0x2794c10_0 .alias "ReadData2", 31 0, v0x27a4320_0; +v0x2794cb0_0 .var "ReadRegister1", 4 0; +v0x2794d60_0 .var "ReadRegister2", 4 0; +v0x2794e00_0 .var "RegWrite", 0 0; +v0x2794ee0_0 .var "WriteData", 31 0; +v0x2794f80_0 .var "WriteRegister", 4 0; +v0x2795050_0 .net "begintest", 0 0, v0x27a4620_0; 1 drivers +v0x27950f0_0 .var "dutpassed", 0 0; +v0x27951f0_0 .var "endtest", 0 0; +E_0x27564f0 .event posedge, v0x2795050_0; + .scope S_0x279ede0; +T_0 ; + %wait E_0x27955e0; + %load/v 8, v0x279f070_0, 1; + %jmp/0xz T_0.0, 8; + %load/v 8, v0x279ef50_0, 32; + %set/v v0x279efd0_0, 8, 32; +T_0.0 ; + %jmp T_0; + .thread T_0; + .scope S_0x279e8f0; +T_1 ; + %wait E_0x27955e0; + %load/v 8, v0x279eb80_0, 1; + %jmp/0xz T_1.0, 8; + %load/v 8, v0x279ea60_0, 32; + %set/v v0x279eae0_0, 8, 32; +T_1.0 ; + %jmp T_1; + .thread T_1; + .scope S_0x279e400; +T_2 ; + %wait E_0x27955e0; + %load/v 8, v0x279e690_0, 1; + %jmp/0xz T_2.0, 8; + %load/v 8, v0x279e570_0, 32; + %set/v v0x279e5f0_0, 8, 32; +T_2.0 ; + %jmp T_2; + .thread T_2; + .scope S_0x279df10; +T_3 ; + %wait E_0x27955e0; + %load/v 8, v0x279e1a0_0, 1; + %jmp/0xz T_3.0, 8; + %load/v 8, v0x279e080_0, 32; + %set/v v0x279e100_0, 8, 32; +T_3.0 ; + %jmp T_3; + .thread T_3; + .scope S_0x279da20; +T_4 ; + %wait E_0x27955e0; + %load/v 8, v0x279dcb0_0, 1; + %jmp/0xz T_4.0, 8; + %load/v 8, v0x279db90_0, 32; + %set/v v0x279dc10_0, 8, 32; +T_4.0 ; + %jmp T_4; + .thread T_4; + .scope S_0x279d530; +T_5 ; + %wait E_0x27955e0; + %load/v 8, v0x279d7c0_0, 1; + %jmp/0xz T_5.0, 8; + %load/v 8, v0x279d6a0_0, 32; + %set/v v0x279d720_0, 8, 32; +T_5.0 ; + %jmp T_5; + .thread T_5; + .scope S_0x279d040; +T_6 ; + %wait E_0x27955e0; + %load/v 8, v0x279d2d0_0, 1; + %jmp/0xz T_6.0, 8; + %load/v 8, v0x279d1b0_0, 32; + %set/v v0x279d230_0, 8, 32; +T_6.0 ; + %jmp T_6; + .thread T_6; + .scope S_0x279cb50; +T_7 ; + %wait E_0x27955e0; + %load/v 8, v0x279cde0_0, 1; + %jmp/0xz T_7.0, 8; + %load/v 8, v0x279ccc0_0, 32; + %set/v v0x279cd40_0, 8, 32; +T_7.0 ; + %jmp T_7; + .thread T_7; + .scope S_0x279c660; +T_8 ; + %wait E_0x27955e0; + %load/v 8, v0x279c8f0_0, 1; + %jmp/0xz T_8.0, 8; + %load/v 8, v0x279c7d0_0, 32; + %set/v v0x279c850_0, 8, 32; +T_8.0 ; + %jmp T_8; + .thread T_8; + .scope S_0x279c170; +T_9 ; + %wait E_0x27955e0; + %load/v 8, v0x279c400_0, 1; + %jmp/0xz T_9.0, 8; + %load/v 8, v0x279c2e0_0, 32; + %set/v v0x279c360_0, 8, 32; +T_9.0 ; + %jmp T_9; + .thread T_9; + .scope S_0x279bc80; +T_10 ; + %wait E_0x27955e0; + %load/v 8, v0x279bf10_0, 1; + %jmp/0xz T_10.0, 8; + %load/v 8, v0x279bdf0_0, 32; + %set/v v0x279be70_0, 8, 32; +T_10.0 ; + %jmp T_10; + .thread T_10; + .scope S_0x279b790; +T_11 ; + %wait E_0x27955e0; + %load/v 8, v0x279ba20_0, 1; + %jmp/0xz T_11.0, 8; + %load/v 8, v0x279b900_0, 32; + %set/v v0x279b980_0, 8, 32; +T_11.0 ; + %jmp T_11; + .thread T_11; + .scope S_0x279b2a0; +T_12 ; + %wait E_0x27955e0; + %load/v 8, v0x279b530_0, 1; + %jmp/0xz T_12.0, 8; + %load/v 8, v0x279b410_0, 32; + %set/v v0x279b490_0, 8, 32; +T_12.0 ; + %jmp T_12; + .thread T_12; + .scope S_0x279adb0; +T_13 ; + %wait E_0x27955e0; + %load/v 8, v0x279b040_0, 1; + %jmp/0xz T_13.0, 8; + %load/v 8, v0x279af20_0, 32; + %set/v v0x279afa0_0, 8, 32; +T_13.0 ; + %jmp T_13; + .thread T_13; + .scope S_0x279a8c0; +T_14 ; + %wait E_0x27955e0; + %load/v 8, v0x279ab50_0, 1; + %jmp/0xz T_14.0, 8; + %load/v 8, v0x279aa30_0, 32; + %set/v v0x279aab0_0, 8, 32; +T_14.0 ; + %jmp T_14; + .thread T_14; + .scope S_0x279a1c0; +T_15 ; + %wait E_0x27955e0; + %load/v 8, v0x2797bb0_0, 1; + %jmp/0xz T_15.0, 8; + %load/v 8, v0x2797a90_0, 32; + %set/v v0x2797b10_0, 8, 32; +T_15.0 ; + %jmp T_15; + .thread T_15; + .scope S_0x2799cd0; +T_16 ; + %wait E_0x27955e0; + %load/v 8, v0x2799f60_0, 1; + %jmp/0xz T_16.0, 8; + %load/v 8, v0x2799e40_0, 32; + %set/v v0x2799ec0_0, 8, 32; +T_16.0 ; + %jmp T_16; + .thread T_16; + .scope S_0x27997e0; +T_17 ; + %wait E_0x27955e0; + %load/v 8, v0x2799a70_0, 1; + %jmp/0xz T_17.0, 8; + %load/v 8, v0x2799950_0, 32; + %set/v v0x27999d0_0, 8, 32; +T_17.0 ; + %jmp T_17; + .thread T_17; + .scope S_0x27992f0; +T_18 ; + %wait E_0x27955e0; + %load/v 8, v0x2799580_0, 1; + %jmp/0xz T_18.0, 8; + %load/v 8, v0x2799460_0, 32; + %set/v v0x27994e0_0, 8, 32; +T_18.0 ; + %jmp T_18; + .thread T_18; + .scope S_0x2798e00; +T_19 ; + %wait E_0x27955e0; + %load/v 8, v0x2799090_0, 1; + %jmp/0xz T_19.0, 8; + %load/v 8, v0x2798f70_0, 32; + %set/v v0x2798ff0_0, 8, 32; +T_19.0 ; + %jmp T_19; + .thread T_19; + .scope S_0x2798910; +T_20 ; + %wait E_0x27955e0; + %load/v 8, v0x2798ba0_0, 1; + %jmp/0xz T_20.0, 8; + %load/v 8, v0x2798a80_0, 32; + %set/v v0x2798b00_0, 8, 32; +T_20.0 ; + %jmp T_20; + .thread T_20; + .scope S_0x2798420; +T_21 ; + %wait E_0x27955e0; + %load/v 8, v0x27986b0_0, 1; + %jmp/0xz T_21.0, 8; + %load/v 8, v0x2798590_0, 32; + %set/v v0x2798610_0, 8, 32; +T_21.0 ; + %jmp T_21; + .thread T_21; + .scope S_0x2797f30; +T_22 ; + %wait E_0x27955e0; + %load/v 8, v0x27981c0_0, 1; + %jmp/0xz T_22.0, 8; + %load/v 8, v0x27980a0_0, 32; + %set/v v0x2798120_0, 8, 32; +T_22.0 ; + %jmp T_22; + .thread T_22; + .scope S_0x2797920; +T_23 ; + %wait E_0x27955e0; + %load/v 8, v0x2797cd0_0, 1; + %jmp/0xz T_23.0, 8; + %load/v 8, v0x27965b0_0, 32; + %set/v v0x27966c0_0, 8, 32; +T_23.0 ; + %jmp T_23; + .thread T_23; + .scope S_0x2797430; +T_24 ; + %wait E_0x27955e0; + %load/v 8, v0x27976c0_0, 1; + %jmp/0xz T_24.0, 8; + %load/v 8, v0x27975a0_0, 32; + %set/v v0x2797620_0, 8, 32; +T_24.0 ; + %jmp T_24; + .thread T_24; + .scope S_0x2796f40; +T_25 ; + %wait E_0x27955e0; + %load/v 8, v0x27971d0_0, 1; + %jmp/0xz T_25.0, 8; + %load/v 8, v0x27970b0_0, 32; + %set/v v0x2797130_0, 8, 32; +T_25.0 ; + %jmp T_25; + .thread T_25; + .scope S_0x2796a50; +T_26 ; + %wait E_0x27955e0; + %load/v 8, v0x2796ce0_0, 1; + %jmp/0xz T_26.0, 8; + %load/v 8, v0x2796bc0_0, 32; + %set/v v0x2796c40_0, 8, 32; +T_26.0 ; + %jmp T_26; + .thread T_26; + .scope S_0x2796440; +T_27 ; + %wait E_0x27955e0; + %load/v 8, v0x27967f0_0, 1; + %jmp/0xz T_27.0, 8; + %load/v 8, v0x2796640_0, 32; + %set/v v0x2796750_0, 8, 32; +T_27.0 ; + %jmp T_27; + .thread T_27; + .scope S_0x2795f80; +T_28 ; + %wait E_0x27955e0; + %load/v 8, v0x2796210_0, 1; + %jmp/0xz T_28.0, 8; + %load/v 8, v0x27960f0_0, 32; + %set/v v0x2796170_0, 8, 32; +T_28.0 ; + %jmp T_28; + .thread T_28; + .scope S_0x2795a70; +T_29 ; + %wait E_0x27955e0; + %load/v 8, v0x2795d50_0, 1; + %jmp/0xz T_29.0, 8; + %load/v 8, v0x2795be0_0, 32; + %set/v v0x2795cb0_0, 8, 32; +T_29.0 ; + %jmp T_29; + .thread T_29; + .scope S_0x27954f0; +T_30 ; + %wait E_0x27955e0; + %load/v 8, v0x2795830_0, 1; + %jmp/0xz T_30.0, 8; + %load/v 8, v0x2795700_0, 32; + %set/v v0x27957b0_0, 8, 32; +T_30.0 ; + %jmp T_30; + .thread T_30; + .scope S_0x27a2b70; +T_31 ; + %wait E_0x27955e0; + %set/v v0x279faa0_0, 0, 32; + %jmp T_31; + .thread T_31; + .scope S_0x2778d40; +T_32 ; + %set/v v0x2794ee0_0, 0, 32; + %set/v v0x2794cb0_0, 0, 5; + %set/v v0x2794d60_0, 0, 5; + %set/v v0x2794f80_0, 0, 5; + %set/v v0x2794e00_0, 0, 1; + %set/v v0x274a130_0, 0, 1; + %end; + .thread T_32; + .scope S_0x2778d40; +T_33 ; + %wait E_0x27564f0; + %set/v v0x27951f0_0, 0, 1; + %set/v v0x27950f0_0, 1, 1; + %delay 10, 0; + %movi 8, 2, 5; + %set/v v0x2794f80_0, 8, 5; + %movi 8, 42, 32; + %set/v v0x2794ee0_0, 8, 32; + %set/v v0x2794e00_0, 1, 1; + %movi 8, 2, 5; + %set/v v0x2794cb0_0, 8, 5; + %movi 8, 2, 5; + %set/v v0x2794d60_0, 8, 5; + %delay 5, 0; + %set/v v0x274a130_0, 1, 1; + %delay 5, 0; + %set/v v0x274a130_0, 0, 1; + %vpi_call 2 122 "$display", "Written: %d Write: %d Read: %d %d Read1: %d Read2: %d", v0x2794ee0_0, v0x2794f80_0, v0x2794cb0_0, v0x2794d60_0, v0x2794b70_0, v0x2794c10_0; + %load/v 8, v0x2794b70_0, 32; + %cmpi/u 8, 42, 32; + %inv 4, 1; + %mov 8, 4, 1; + %load/v 9, v0x2794c10_0, 32; + %cmpi/u 9, 42, 32; + %inv 4, 1; + %or 8, 4, 1; + %jmp/0xz T_33.0, 8; + %set/v v0x27950f0_0, 0, 1; + %vpi_call 2 128 "$display", "Test Case 1 Failed"; +T_33.0 ; + %movi 8, 2, 5; + %set/v v0x2794f80_0, 8, 5; + %movi 8, 15, 32; + %set/v v0x2794ee0_0, 8, 32; + %set/v v0x2794e00_0, 1, 1; + %movi 8, 2, 5; + %set/v v0x2794cb0_0, 8, 5; + %movi 8, 2, 5; + %set/v v0x2794d60_0, 8, 5; + %delay 5, 0; + %set/v v0x274a130_0, 1, 1; + %delay 5, 0; + %set/v v0x274a130_0, 0, 1; + %vpi_call 2 140 "$display", "Written: %d Write: %d Read: %d %d Read1: %d Read2: %d", v0x2794ee0_0, v0x2794f80_0, v0x2794cb0_0, v0x2794d60_0, v0x2794b70_0, v0x2794c10_0; + %load/v 8, v0x2794b70_0, 32; + %cmpi/u 8, 15, 32; + %inv 4, 1; + %mov 8, 4, 1; + %load/v 9, v0x2794c10_0, 32; + %cmpi/u 9, 15, 32; + %inv 4, 1; + %or 8, 4, 1; + %jmp/0xz T_33.2, 8; + %set/v v0x27950f0_0, 0, 1; + %vpi_call 2 145 "$display", "Test Case 2 Failed"; +T_33.2 ; + %movi 8, 23, 5; + %set/v v0x2794f80_0, 8, 5; + %movi 8, 1432, 32; + %set/v v0x2794ee0_0, 8, 32; + %set/v v0x2794e00_0, 1, 1; + %movi 8, 23, 5; + %set/v v0x2794cb0_0, 8, 5; + %movi 8, 23, 5; + %set/v v0x2794d60_0, 8, 5; + %delay 5, 0; + %set/v v0x274a130_0, 1, 1; + %delay 5, 0; + %set/v v0x274a130_0, 0, 1; + %vpi_call 2 156 "$display", "Written: %d Write: %d Read: %d %d Read1: %d Read2: %d", v0x2794ee0_0, v0x2794f80_0, v0x2794cb0_0, v0x2794d60_0, v0x2794b70_0, v0x2794c10_0; + %load/v 8, v0x2794b70_0, 32; + %cmpi/u 8, 1432, 32; + %inv 4, 1; + %mov 8, 4, 1; + %load/v 9, v0x2794c10_0, 32; + %cmpi/u 9, 1432, 32; + %inv 4, 1; + %or 8, 4, 1; + %jmp/0xz T_33.4, 8; + %set/v v0x27950f0_0, 0, 1; + %vpi_call 2 161 "$display", "Test Case 3 Failed"; +T_33.4 ; + %movi 8, 23, 5; + %set/v v0x2794f80_0, 8, 5; + %movi 8, 33, 32; + %set/v v0x2794ee0_0, 8, 32; + %set/v v0x2794e00_0, 0, 1; + %movi 8, 23, 5; + %set/v v0x2794cb0_0, 8, 5; + %movi 8, 23, 5; + %set/v v0x2794d60_0, 8, 5; + %delay 5, 0; + %set/v v0x274a130_0, 1, 1; + %delay 5, 0; + %set/v v0x274a130_0, 0, 1; + %vpi_call 2 172 "$display", "Written: %d Write: %d Read: %d %d Read1: %d Read2: %d", v0x2794ee0_0, v0x2794f80_0, v0x2794cb0_0, v0x2794d60_0, v0x2794b70_0, v0x2794c10_0; + %load/v 8, v0x2794b70_0, 32; + %cmpi/u 8, 1432, 32; + %inv 4, 1; + %mov 8, 4, 1; + %load/v 9, v0x2794c10_0, 32; + %cmpi/u 9, 1432, 32; + %inv 4, 1; + %or 8, 4, 1; + %jmp/0xz T_33.6, 8; + %set/v v0x27950f0_0, 0, 1; + %vpi_call 2 177 "$display", "Test Case 4 Failed"; +T_33.6 ; + %movi 8, 23, 5; + %set/v v0x2794f80_0, 8, 5; + %movi 8, 33, 32; + %set/v v0x2794ee0_0, 8, 32; + %set/v v0x2794e00_0, 1, 1; + %movi 8, 2, 5; + %set/v v0x2794cb0_0, 8, 5; + %movi 8, 2, 5; + %set/v v0x2794d60_0, 8, 5; + %delay 5, 0; + %set/v v0x274a130_0, 1, 1; + %delay 5, 0; + %set/v v0x274a130_0, 0, 1; + %vpi_call 2 188 "$display", "Written: %d Write: %d Read: %d %d Read1: %d Read2: %d", v0x2794ee0_0, v0x2794f80_0, v0x2794cb0_0, v0x2794d60_0, v0x2794b70_0, v0x2794c10_0; + %load/v 8, v0x2794b70_0, 32; + %cmpi/u 8, 15, 32; + %inv 4, 1; + %mov 8, 4, 1; + %load/v 9, v0x2794c10_0, 32; + %cmpi/u 9, 15, 32; + %inv 4, 1; + %or 8, 4, 1; + %jmp/0xz T_33.8, 8; + %set/v v0x27950f0_0, 0, 1; + %vpi_call 2 193 "$display", "Test Case 5 Failed"; +T_33.8 ; + %set/v v0x2794f80_0, 0, 5; + %movi 8, 33, 32; + %set/v v0x2794ee0_0, 8, 32; + %set/v v0x2794e00_0, 1, 1; + %set/v v0x2794cb0_0, 0, 5; + %set/v v0x2794d60_0, 0, 5; + %delay 5, 0; + %set/v v0x274a130_0, 1, 1; + %delay 5, 0; + %set/v v0x274a130_0, 0, 1; + %vpi_call 2 204 "$display", "Written: %d Write: %d Read: %d %d Read1: %d Read2: %d", v0x2794ee0_0, v0x2794f80_0, v0x2794cb0_0, v0x2794d60_0, v0x2794b70_0, v0x2794c10_0; + %load/v 8, v0x2794b70_0, 32; + %cmpi/u 8, 0, 32; + %inv 4, 1; + %mov 8, 4, 1; + %load/v 9, v0x2794c10_0, 32; + %cmpi/u 9, 0, 32; + %inv 4, 1; + %or 8, 4, 1; + %jmp/0xz T_33.10, 8; + %set/v v0x27950f0_0, 0, 1; + %vpi_call 2 209 "$display", "Test Case 6 Failed"; +T_33.10 ; + %set/v v0x2794f80_0, 1, 5; + %movi 8, 1432, 32; + %set/v v0x2794ee0_0, 8, 32; + %set/v v0x2794e00_0, 1, 1; + %set/v v0x2794cb0_0, 1, 5; + %set/v v0x2794d60_0, 1, 5; + %delay 5, 0; + %set/v v0x274a130_0, 1, 1; + %delay 5, 0; + %set/v v0x274a130_0, 0, 1; + %vpi_call 2 220 "$display", "Written: %d Write: %d Read: %d %d Read1: %d Read2: %d", v0x2794ee0_0, v0x2794f80_0, v0x2794cb0_0, v0x2794d60_0, v0x2794b70_0, v0x2794c10_0; + %load/v 8, v0x2794b70_0, 32; + %cmpi/u 8, 1432, 32; + %inv 4, 1; + %mov 8, 4, 1; + %load/v 9, v0x2794c10_0, 32; + %cmpi/u 9, 1432, 32; + %inv 4, 1; + %or 8, 4, 1; + %jmp/0xz T_33.12, 8; + %set/v v0x27950f0_0, 0, 1; + %vpi_call 2 225 "$display", "Test Case 7 Failed"; +T_33.12 ; + %movi 8, 30, 5; + %set/v v0x2794f80_0, 8, 5; + %movi 8, 2543, 32; + %set/v v0x2794ee0_0, 8, 32; + %set/v v0x2794e00_0, 1, 1; + %movi 8, 30, 5; + %set/v v0x2794cb0_0, 8, 5; + %set/v v0x2794d60_0, 1, 5; + %delay 5, 0; + %set/v v0x274a130_0, 1, 1; + %delay 5, 0; + %set/v v0x274a130_0, 0, 1; + %vpi_call 2 236 "$display", "Written: %d Write: %d Read: %d %d Read1: %d Read2: %d", v0x2794ee0_0, v0x2794f80_0, v0x2794cb0_0, v0x2794d60_0, v0x2794b70_0, v0x2794c10_0; + %load/v 8, v0x2794b70_0, 32; + %cmpi/u 8, 2543, 32; + %inv 4, 1; + %mov 8, 4, 1; + %load/v 9, v0x2794c10_0, 32; + %cmpi/u 9, 1432, 32; + %inv 4, 1; + %or 8, 4, 1; + %jmp/0xz T_33.14, 8; + %set/v v0x27950f0_0, 0, 1; + %vpi_call 2 241 "$display", "Test Case 8 Failed"; +T_33.14 ; + %movi 8, 1, 5; + %set/v v0x2794f80_0, 8, 5; + %movi 8, 2543, 32; + %set/v v0x2794ee0_0, 8, 32; + %set/v v0x2794e00_0, 1, 1; + %movi 8, 23, 5; + %set/v v0x2794cb0_0, 8, 5; + %movi 8, 1, 5; + %set/v v0x2794d60_0, 8, 5; + %delay 5, 0; + %set/v v0x274a130_0, 1, 1; + %delay 5, 0; + %set/v v0x274a130_0, 0, 1; + %vpi_call 2 252 "$display", "Written: %d Write: %d Read: %d %d Read1: %d Read2: %d", v0x2794ee0_0, v0x2794f80_0, v0x2794cb0_0, v0x2794d60_0, v0x2794b70_0, v0x2794c10_0; + %load/v 8, v0x2794b70_0, 32; + %cmpi/u 8, 33, 32; + %inv 4, 1; + %mov 8, 4, 1; + %load/v 9, v0x2794c10_0, 32; + %cmpi/u 9, 2543, 32; + %inv 4, 1; + %or 8, 4, 1; + %jmp/0xz T_33.16, 8; + %set/v v0x27950f0_0, 0, 1; + %vpi_call 2 257 "$display", "Test Case 9 Failed"; +T_33.16 ; + %delay 5, 0; + %set/v v0x27951f0_0, 1, 1; + %jmp T_33; + .thread T_33; + .scope S_0x2778ec0; +T_34 ; + %set/v v0x27a4620_0, 0, 1; + %delay 10, 0; + %set/v v0x27a4620_0, 1, 1; + %delay 1000, 0; + %end; + .thread T_34; + .scope S_0x2778ec0; +T_35 ; + %wait E_0x2754e50; + %vpi_call 2 62 "$display", "DUT passed?: %b", v0x27a46a0_0; + %jmp T_35; + .thread T_35; +# The file index is used to find the file name in the following table. +:file_names 8; + "N/A"; + ""; + "regfile.t.v"; + "./regfile.v"; + "./decoders.v"; + "./register32zero.v"; + "./mux32to1by32.v"; + "./register32.v"; diff --git a/regfile.t.v b/regfile.t.v index f13815a..fa75243 100644 --- a/regfile.t.v +++ b/regfile.t.v @@ -1,21 +1,24 @@ //------------------------------------------------------------------------------ -// Test harness validates hw4testbench by connecting it to various functional +// Test harness validates hw4testbench by connecting it to various functional // or broken register files, and verifying that it correctly identifies each //------------------------------------------------------------------------------ +`include "regfile.v" + module hw4testbenchharness(); - wire[31:0] ReadData1; // Data from first register read - wire[31:0] ReadData2; // Data from second register read - wire[31:0] WriteData; // Data to write to register + wire[31:0] ReadData1; // Data from first register read + wire[31:0] ReadData2; // Data from second register read + wire[31:0] WriteData; // Data to write to register wire[4:0] ReadRegister1; // Address of first register to read wire[4:0] ReadRegister2; // Address of second register to read wire[4:0] WriteRegister; // Address of register to write - wire RegWrite; // Enable writing of register when High - wire Clk; // Clock (Positive Edge Triggered) + wire RegWrite; // Enable writing of register when High + wire Clk; // Clock (Positive Edge Triggered) - reg begintest; // Set High to begin testing register file - wire dutpassed; // Indicates whether register file passed tests + reg begintest; // Set High to begin testing register file + wire endtest; // Indicates when testing is over + wire dutpassed; // Indicates whether register file passed tests // Instantiate the register file being tested. DUT = Device Under Test regfile DUT @@ -34,15 +37,15 @@ module hw4testbenchharness(); hw4testbench tester ( .begintest(begintest), - .endtest(endtest), + .endtest(endtest), .dutpassed(dutpassed), .ReadData1(ReadData1), .ReadData2(ReadData2), - .WriteData(WriteData), - .ReadRegister1(ReadRegister1), + .WriteData(WriteData), + .ReadRegister1(ReadRegister1), .ReadRegister2(ReadRegister2), .WriteRegister(WriteRegister), - .RegWrite(RegWrite), + .RegWrite(RegWrite), .Clk(Clk) ); @@ -107,7 +110,7 @@ output reg Clk dutpassed = 1; #10 - // Test Case 1: + // Test Case 1: // Write '42' to register 2, verify with Read Ports 1 and 2 // (Passes because example register file is hardwired to return 42) WriteRegister = 5'd2; @@ -116,6 +119,8 @@ output reg Clk ReadRegister1 = 5'd2; ReadRegister2 = 5'd2; #5 Clk=1; #5 Clk=0; // Generate single clock pulse + $display("Written: %d Write: %d Read: %d %d Read1: %d Read2: %d", WriteData, + WriteRegister, ReadRegister1, ReadRegister2, ReadData1, ReadData2); // Verify expectations and report test result if((ReadData1 != 42) || (ReadData2 != 42)) begin @@ -123,7 +128,7 @@ output reg Clk $display("Test Case 1 Failed"); end - // Test Case 2: + // Test Case 2: // Write '15' to register 2, verify with Read Ports 1 and 2 // (Fails with example register file, but should pass with yours) WriteRegister = 5'd2; @@ -132,12 +137,126 @@ output reg Clk ReadRegister1 = 5'd2; ReadRegister2 = 5'd2; #5 Clk=1; #5 Clk=0; + $display("Written: %d Write: %d Read: %d %d Read1: %d Read2: %d", WriteData, + WriteRegister, ReadRegister1, ReadRegister2, ReadData1, ReadData2); if((ReadData1 != 15) || (ReadData2 != 15)) begin dutpassed = 0; $display("Test Case 2 Failed"); end + // Test Case 3: + // Write '1432' to register 23, verify with Read Ports 1 and 2 + WriteRegister = 5'd23; + WriteData = 32'd1432; + RegWrite = 1; + ReadRegister1 = 5'd23; + ReadRegister2 = 5'd23; + #5 Clk=1; #5 Clk=0; + $display("Written: %d Write: %d Read: %d %d Read1: %d Read2: %d", WriteData, + WriteRegister, ReadRegister1, ReadRegister2, ReadData1, ReadData2); + + if((ReadData1 != 1432) || (ReadData2 != 1432)) begin + dutpassed = 0; + $display("Test Case 3 Failed"); + end + + // Test Case 4: + // Write '33' to register 23 without Write Enable, verify read is same as previous + WriteRegister = 5'd23; + WriteData = 32'd33; + RegWrite = 0; + ReadRegister1 = 5'd23; + ReadRegister2 = 5'd23; + #5 Clk=1; #5 Clk=0; + $display("Written: %d Write: %d Read: %d %d Read1: %d Read2: %d", WriteData, + WriteRegister, ReadRegister1, ReadRegister2, ReadData1, ReadData2); + + if((ReadData1 != 1432) || (ReadData2 != 1432)) begin + dutpassed = 0; + $display("Test Case 4 Failed"); + end + + // Test Case 5: + // Write '33' to register 23, verify register 2 is not written to + WriteRegister = 5'd23; + WriteData = 32'd33; + RegWrite = 1; + ReadRegister1 = 5'd2; + ReadRegister2 = 5'd2; + #5 Clk=1; #5 Clk=0; + $display("Written: %d Write: %d Read: %d %d Read1: %d Read2: %d", WriteData, + WriteRegister, ReadRegister1, ReadRegister2, ReadData1, ReadData2); + + if((ReadData1 != 15) || (ReadData2 != 15)) begin + dutpassed = 0; + $display("Test Case 5 Failed"); + end + + // Test Case 6: + // Write '33' to register 0, verify still returns 0 + WriteRegister = 5'd0; + WriteData = 32'd33; + RegWrite = 1; + ReadRegister1 = 5'd0; + ReadRegister2 = 5'd0; + #5 Clk=1; #5 Clk=0; + $display("Written: %d Write: %d Read: %d %d Read1: %d Read2: %d", WriteData, + WriteRegister, ReadRegister1, ReadRegister2, ReadData1, ReadData2); + + if((ReadData1 != 0) || (ReadData2 != 0)) begin + dutpassed = 0; + $display("Test Case 6 Failed"); + end + + // Test Case 7: + // Write '1432' to register 31, verify read + WriteRegister = 5'd31; + WriteData = 32'd1432; + RegWrite = 1; + ReadRegister1 = 5'd31; + ReadRegister2 = 5'd31; + #5 Clk=1; #5 Clk=0; + $display("Written: %d Write: %d Read: %d %d Read1: %d Read2: %d", WriteData, + WriteRegister, ReadRegister1, ReadRegister2, ReadData1, ReadData2); + + if((ReadData1 != 1432) || (ReadData2 != 1432)) begin + dutpassed = 0; + $display("Test Case 7 Failed"); + end + + // Test Case 8: + // Write '2543' to register 30, verify read registers operate independently + WriteRegister = 5'd30; + WriteData = 32'd2543; + RegWrite = 1; + ReadRegister1 = 5'd30; + ReadRegister2 = 5'd31; + #5 Clk=1; #5 Clk=0; + $display("Written: %d Write: %d Read: %d %d Read1: %d Read2: %d", WriteData, + WriteRegister, ReadRegister1, ReadRegister2, ReadData1, ReadData2); + + if((ReadData1 != 2543) || (ReadData2 != 1432)) begin + dutpassed = 0; + $display("Test Case 8 Failed"); + end + + // Test Case 9: + // Same as above, but flipped and different registers + WriteRegister = 5'd1; + WriteData = 32'd2543; + RegWrite = 1; + ReadRegister1 = 5'd23; + ReadRegister2 = 5'd1; + #5 Clk=1; #5 Clk=0; + $display("Written: %d Write: %d Read: %d %d Read1: %d Read2: %d", WriteData, + WriteRegister, ReadRegister1, ReadRegister2, ReadData1, ReadData2); + + if((ReadData1 != 33) || (ReadData2 != 2543)) begin + dutpassed = 0; + $display("Test Case 9 Failed"); + end + // All done! Wait a moment and signal test completion. #5 @@ -145,4 +264,4 @@ output reg Clk end -endmodule \ No newline at end of file +endmodule diff --git a/regfile.v b/regfile.v index b8a3c74..019f20f 100644 --- a/regfile.v +++ b/regfile.v @@ -6,22 +6,48 @@ // 1 synchronous, positive edge triggered write port //------------------------------------------------------------------------------ +`include "register32.v" +`include "register32zero.v" +`include "decoders.v" +`include "mux32to1by32.v" + module regfile ( -output[31:0] ReadData1, // Contents of first register read -output[31:0] ReadData2, // Contents of second register read -input[31:0] WriteData, // Contents to write to register -input[4:0] ReadRegister1, // Address of first register to read -input[4:0] ReadRegister2, // Address of second register to read -input[4:0] WriteRegister, // Address of register to write -input RegWrite, // Enable writing of register when High -input Clk // Clock (Positive Edge Triggered) +output[31:0] ReadData1, // Contents of first register read +output[31:0] ReadData2, // Contents of second register read +input[31:0] WriteData, // Contents to write to register +input[4:0] ReadRegister1, // Address of first register to read +input[4:0] ReadRegister2, // Address of second register to read +input[4:0] WriteRegister, // Address of register to write +input RegWrite, // Enable writing of register when High +input Clk // Clock (Positive Edge Triggered) ); - // These two lines are clearly wrong. They are included to showcase how the - // test harness works. Delete them after you understand the testing process, - // and replace them with your actual code. - assign ReadData1 = 42; - assign ReadData2 = 42; +wire[31:0] regOut[31:0]; +wire[31:0] regEnable; +genvar i; + + decoder1to32 decoder(regEnable, RegWrite, WriteRegister); + + register32zero register0 (regOut[0], WriteData, regEnable[0], Clk); + generate + for (i = 1; i < 32; i = i+1) begin : register_generate + register32 register (regOut[i], WriteData, regEnable[i], Clk); + end + endgenerate + + mux32to1by32 multiplexer1 (ReadData1, ReadRegister1, regOut[0], regOut[1], + regOut[2], regOut[3], regOut[4], regOut[5], regOut[6], regOut[7], regOut[8], + regOut[9], regOut[10], regOut[11], regOut[12], regOut[13], regOut[14], + regOut[15], regOut[16], regOut[17], regOut[18], regOut[19], regOut[20], + regOut[21], regOut[22], regOut[23], regOut[24], regOut[25], regOut[26], + regOut[27], regOut[28], regOut[29], regOut[30], regOut[31]); + + mux32to1by32 multiplexer2 (ReadData2, ReadRegister2, regOut[0], regOut[1], + regOut[2], regOut[3], regOut[4], regOut[5], regOut[6], regOut[7], regOut[8], + regOut[9], regOut[10], regOut[11], regOut[12], regOut[13], regOut[14], + regOut[15], regOut[16], regOut[17], regOut[18], regOut[19], regOut[20], + regOut[21], regOut[22], regOut[23], regOut[24], regOut[25], regOut[26], + regOut[27], regOut[28], regOut[29], regOut[30], regOut[31]); -endmodule \ No newline at end of file +endmodule diff --git a/register.v b/register.v index dc9b8cb..61839a5 100644 --- a/register.v +++ b/register.v @@ -2,16 +2,16 @@ // Positive edge triggered module register ( -output reg q, -input d, -input wrenable, -input clk +output reg q, +input d, +input wrenable, +input clk ); - always @(posedge clk) begin - if(wrenable) begin - q = d; - end + always @(posedge clk) begin + if(wrenable) begin + q = d; end + end -endmodule \ No newline at end of file +endmodule diff --git a/register32.v b/register32.v new file mode 100644 index 0000000..45e45d0 --- /dev/null +++ b/register32.v @@ -0,0 +1,18 @@ +// 32-bit D Flip-Flop with enable +// Positive edge triggered + +module register32 +( +output reg[31:0] q, +input[31:0] d, +input wrenable, +input clk +); + + always @(posedge clk) begin + if(wrenable) begin + q = d; + end + end + +endmodule diff --git a/register32zero.v b/register32zero.v new file mode 100644 index 0000000..0b43023 --- /dev/null +++ b/register32zero.v @@ -0,0 +1,16 @@ +// 32-bit D Flip-Flop with enable +// Positive edge triggered + +module register32zero +( +output reg[31:0] q, +input[31:0] d, +input wrenable, +input clk +); + + always @(posedge clk) begin + q = 32'b0; + end + +endmodule From a37eda4c498d5b22c22d5ee878d643ca76425f1b Mon Sep 17 00:00:00 2001 From: Halliax Date: Tue, 17 Oct 2017 22:12:22 -0400 Subject: [PATCH 2/2] removed output file, added gitignore --- .gitignore | 2 + regfile.out | 1200 --------------------------------------------------- 2 files changed, 2 insertions(+), 1200 deletions(-) create mode 100644 .gitignore delete mode 100755 regfile.out diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..318dd74 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.out +*~ diff --git a/regfile.out b/regfile.out deleted file mode 100755 index b5df4ed..0000000 --- a/regfile.out +++ /dev/null @@ -1,1200 +0,0 @@ -#! /usr/bin/vvp -:ivl_version "0.9.7 " "(v0_9_7)"; -:vpi_time_precision + 0; -:vpi_module "system"; -:vpi_module "v2005_math"; -:vpi_module "va_math"; -S_0x2778ec0 .scope module, "hw4testbenchharness" "hw4testbenchharness" 2 8; - .timescale 0 0; -v0x27a4220_0 .net "Clk", 0 0, v0x274a130_0; 1 drivers -v0x27a42a0_0 .net "ReadData1", 31 0, L_0x27a8d80; 1 drivers -v0x27a4320_0 .net "ReadData2", 31 0, L_0x27aa2b0; 1 drivers -v0x27a43a0_0 .net "ReadRegister1", 4 0, v0x2794cb0_0; 1 drivers -v0x27a4420_0 .net "ReadRegister2", 4 0, v0x2794d60_0; 1 drivers -v0x27a44a0_0 .net "RegWrite", 0 0, v0x2794e00_0; 1 drivers -v0x27a4520_0 .net "WriteData", 31 0, v0x2794ee0_0; 1 drivers -v0x27a45a0_0 .net "WriteRegister", 4 0, v0x2794f80_0; 1 drivers -v0x27a4620_0 .var "begintest", 0 0; -v0x27a46a0_0 .net "dutpassed", 0 0, v0x27950f0_0; 1 drivers -v0x27a4780_0 .net "endtest", 0 0, v0x27951f0_0; 1 drivers -E_0x2754e50 .event posedge, v0x27951f0_0; -S_0x2795290 .scope module, "DUT" "regfile" 2 24, 3 14, S_0x2778ec0; - .timescale 0 0; -v0x27a3a70_0 .alias "Clk", 0 0, v0x27a4220_0; -v0x27a3af0_0 .alias "ReadData1", 31 0, v0x27a42a0_0; -v0x27a3b70_0 .alias "ReadData2", 31 0, v0x27a4320_0; -v0x27a3bf0_0 .alias "ReadRegister1", 4 0, v0x27a43a0_0; -v0x27a3c70_0 .alias "ReadRegister2", 4 0, v0x27a4420_0; -v0x27a3d40_0 .alias "RegWrite", 0 0, v0x27a44a0_0; -v0x27a3e10_0 .alias "WriteData", 31 0, v0x27a4520_0; -v0x27a3e90_0 .alias "WriteRegister", 4 0, v0x27a45a0_0; -v0x27a3fb0_0 .net "regEnable", 31 0, L_0x27a54b0; 1 drivers -v0x27a4030 .array "regOut", 0 31; -v0x27a4030_0 .net v0x27a4030 0, 31 0, v0x279faa0_0; 1 drivers -v0x27a4030_1 .net v0x27a4030 1, 31 0, v0x279efd0_0; 1 drivers -v0x27a4030_2 .net v0x27a4030 2, 31 0, v0x279eae0_0; 1 drivers -v0x27a4030_3 .net v0x27a4030 3, 31 0, v0x279e5f0_0; 1 drivers -v0x27a4030_4 .net v0x27a4030 4, 31 0, v0x279e100_0; 1 drivers -v0x27a4030_5 .net v0x27a4030 5, 31 0, v0x279dc10_0; 1 drivers -v0x27a4030_6 .net v0x27a4030 6, 31 0, v0x279d720_0; 1 drivers -v0x27a4030_7 .net v0x27a4030 7, 31 0, v0x279d230_0; 1 drivers -v0x27a4030_8 .net v0x27a4030 8, 31 0, v0x279cd40_0; 1 drivers -v0x27a4030_9 .net v0x27a4030 9, 31 0, v0x279c850_0; 1 drivers -v0x27a4030_10 .net v0x27a4030 10, 31 0, v0x279c360_0; 1 drivers -v0x27a4030_11 .net v0x27a4030 11, 31 0, v0x279be70_0; 1 drivers -v0x27a4030_12 .net v0x27a4030 12, 31 0, v0x279b980_0; 1 drivers -v0x27a4030_13 .net v0x27a4030 13, 31 0, v0x279b490_0; 1 drivers -v0x27a4030_14 .net v0x27a4030 14, 31 0, v0x279afa0_0; 1 drivers -v0x27a4030_15 .net v0x27a4030 15, 31 0, v0x279aab0_0; 1 drivers -v0x27a4030_16 .net v0x27a4030 16, 31 0, v0x2797b10_0; 1 drivers -v0x27a4030_17 .net v0x27a4030 17, 31 0, v0x2799ec0_0; 1 drivers -v0x27a4030_18 .net v0x27a4030 18, 31 0, v0x27999d0_0; 1 drivers -v0x27a4030_19 .net v0x27a4030 19, 31 0, v0x27994e0_0; 1 drivers -v0x27a4030_20 .net v0x27a4030 20, 31 0, v0x2798ff0_0; 1 drivers -v0x27a4030_21 .net v0x27a4030 21, 31 0, v0x2798b00_0; 1 drivers -v0x27a4030_22 .net v0x27a4030 22, 31 0, v0x2798610_0; 1 drivers -v0x27a4030_23 .net v0x27a4030 23, 31 0, v0x2798120_0; 1 drivers -v0x27a4030_24 .net v0x27a4030 24, 31 0, v0x27966c0_0; 1 drivers -v0x27a4030_25 .net v0x27a4030 25, 31 0, v0x2797620_0; 1 drivers -v0x27a4030_26 .net v0x27a4030 26, 31 0, v0x2797130_0; 1 drivers -v0x27a4030_27 .net v0x27a4030 27, 31 0, v0x2796c40_0; 1 drivers -v0x27a4030_28 .net v0x27a4030 28, 31 0, v0x2796750_0; 1 drivers -v0x27a4030_29 .net v0x27a4030 29, 31 0, v0x2796170_0; 1 drivers -v0x27a4030_30 .net v0x27a4030 30, 31 0, v0x2795cb0_0; 1 drivers -v0x27a4030_31 .net v0x27a4030 31, 31 0, v0x27957b0_0; 1 drivers -L_0x27a4800 .part L_0x27a54b0, 1, 1; -L_0x27a48a0 .part L_0x27a54b0, 2, 1; -L_0x27a4940 .part L_0x27a54b0, 3, 1; -L_0x27a4a70 .part L_0x27a54b0, 4, 1; -L_0x27a4b10 .part L_0x27a54b0, 5, 1; -L_0x27a4bb0 .part L_0x27a54b0, 6, 1; -L_0x27a4c50 .part L_0x27a54b0, 7, 1; -L_0x27a4e00 .part L_0x27a54b0, 8, 1; -L_0x27a4ea0 .part L_0x27a54b0, 9, 1; -L_0x27a4f40 .part L_0x27a54b0, 10, 1; -L_0x27a4fe0 .part L_0x27a54b0, 11, 1; -L_0x27a5080 .part L_0x27a54b0, 12, 1; -L_0x27a5120 .part L_0x27a54b0, 13, 1; -L_0x27a51c0 .part L_0x27a54b0, 14, 1; -L_0x27a52e0 .part L_0x27a54b0, 15, 1; -L_0x27a4cf0 .part L_0x27a54b0, 16, 1; -L_0x27a5620 .part L_0x27a54b0, 17, 1; -L_0x27a56c0 .part L_0x27a54b0, 18, 1; -L_0x27a5800 .part L_0x27a54b0, 19, 1; -L_0x27a58a0 .part L_0x27a54b0, 20, 1; -L_0x27a5760 .part L_0x27a54b0, 21, 1; -L_0x27a59f0 .part L_0x27a54b0, 22, 1; -L_0x27a5940 .part L_0x27a54b0, 23, 1; -L_0x27a5b50 .part L_0x27a54b0, 24, 1; -L_0x27a5a90 .part L_0x27a54b0, 25, 1; -L_0x27a5cc0 .part L_0x27a54b0, 26, 1; -L_0x27a5bf0 .part L_0x27a54b0, 27, 1; -L_0x27a5e40 .part L_0x27a54b0, 28, 1; -L_0x27a5d60 .part L_0x27a54b0, 29, 1; -L_0x27a5fd0 .part L_0x27a54b0, 30, 1; -L_0x27a5ee0 .part L_0x27a54b0, 31, 1; -L_0x27a6640 .part L_0x27a54b0, 0, 1; -S_0x279a330 .scope module, "decoder" "decoder1to32" 3 30, 4 5, S_0x2795290; - .timescale 0 0; -v0x279a420_0 .net *"_s0", 31 0, L_0x27a5380; 1 drivers -v0x279a4c0_0 .net *"_s3", 30 0, C4<0000000000000000000000000000000>; 1 drivers -v0x279a560_0 .alias "address", 4 0, v0x27a45a0_0; -v0x279a5e0_0 .alias "enable", 0 0, v0x27a44a0_0; -v0x279a660_0 .alias "out", 31 0, v0x27a3fb0_0; -L_0x27a5380 .concat [ 1 31 0 0], v0x2794e00_0, C4<0000000000000000000000000000000>; -L_0x27a54b0 .shift/l 32, L_0x27a5380, v0x2794f80_0; -S_0x27a2b70 .scope module, "register0" "register32zero" 3 32, 5 4, S_0x2795290; - .timescale 0 0; -v0x27a31d0_0 .alias "clk", 0 0, v0x27a4220_0; -v0x279f8e0_0 .alias "d", 31 0, v0x27a4520_0; -v0x279faa0_0 .var "q", 31 0; -v0x279fe50_0 .net "wrenable", 0 0, L_0x27a6640; 1 drivers -S_0x27a0bc0 .scope module, "multiplexer1" "mux32to1by32" 3 39, 6 3, S_0x2795290; - .timescale 0 0; -L_0x27a5260 .functor BUFZ 32, v0x279faa0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a0660 .functor BUFZ 32, v0x279efd0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a6880 .functor BUFZ 32, v0x279eae0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a6970 .functor BUFZ 32, v0x279e5f0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a6a90 .functor BUFZ 32, v0x279e100_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a6bb0 .functor BUFZ 32, v0x279dc10_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a6d10 .functor BUFZ 32, v0x279d720_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a6e00 .functor BUFZ 32, v0x279d230_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a6f20 .functor BUFZ 32, v0x279cd40_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a7010 .functor BUFZ 32, v0x279c850_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a7190 .functor BUFZ 32, v0x279c360_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a72b0 .functor BUFZ 32, v0x279be70_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a7130 .functor BUFZ 32, v0x279b980_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a7500 .functor BUFZ 32, v0x279b490_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a76a0 .functor BUFZ 32, v0x279afa0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a77c0 .functor BUFZ 32, v0x279aab0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a7970 .functor BUFZ 32, v0x2797b10_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a7a90 .functor BUFZ 32, v0x2799ec0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a78e0 .functor BUFZ 32, v0x27999d0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a7ce0 .functor BUFZ 32, v0x27994e0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a7bb0 .functor BUFZ 32, v0x2798ff0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a7f40 .functor BUFZ 32, v0x2798b00_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a7e00 .functor BUFZ 32, v0x2798610_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a81b0 .functor BUFZ 32, v0x2798120_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a8060 .functor BUFZ 32, v0x27966c0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a8430 .functor BUFZ 32, v0x2797620_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a82d0 .functor BUFZ 32, v0x2797130_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a8690 .functor BUFZ 32, v0x2796c40_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a1f60 .functor BUFZ 32, v0x2796750_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a8870 .functor BUFZ 32, v0x2796170_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a8780 .functor BUFZ 32, v0x2795cb0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a8810 .functor BUFZ 32, v0x27957b0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a8d80 .functor BUFZ 32, L_0x27a8990, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -v0x27a0fa0_0 .net *"_s96", 31 0, L_0x27a8990; 1 drivers -v0x27a1020_0 .alias "address", 4 0, v0x27a43a0_0; -v0x27a10a0_0 .alias "input0", 31 0, v0x27a4030_0; -v0x27a1120_0 .alias "input1", 31 0, v0x27a4030_1; -v0x27a11d0_0 .alias "input10", 31 0, v0x27a4030_10; -v0x27a1250_0 .alias "input11", 31 0, v0x27a4030_11; -v0x27a1320_0 .alias "input12", 31 0, v0x27a4030_12; -v0x27a13f0_0 .alias "input13", 31 0, v0x27a4030_13; -v0x27a1510_0 .alias "input14", 31 0, v0x27a4030_14; -v0x27a15e0_0 .alias "input15", 31 0, v0x27a4030_15; -v0x27a1660_0 .alias "input16", 31 0, v0x27a4030_16; -v0x27a1730_0 .alias "input17", 31 0, v0x27a4030_17; -v0x27a1800_0 .alias "input18", 31 0, v0x27a4030_18; -v0x27a18d0_0 .alias "input19", 31 0, v0x27a4030_19; -v0x27a1a20_0 .alias "input2", 31 0, v0x27a4030_2; -v0x27a1af0_0 .alias "input20", 31 0, v0x27a4030_20; -v0x27a1950_0 .alias "input21", 31 0, v0x27a4030_21; -v0x27a1ca0_0 .alias "input22", 31 0, v0x27a4030_22; -v0x27a1dc0_0 .alias "input23", 31 0, v0x27a4030_23; -v0x27a1e90_0 .alias "input24", 31 0, v0x27a4030_24; -v0x27a1fc0_0 .alias "input25", 31 0, v0x27a4030_25; -v0x27a2040_0 .alias "input26", 31 0, v0x27a4030_26; -v0x27a2180_0 .alias "input27", 31 0, v0x27a4030_27; -v0x27a2200_0 .alias "input28", 31 0, v0x27a4030_28; -v0x27a2350_0 .alias "input29", 31 0, v0x27a4030_29; -v0x27a23d0_0 .alias "input3", 31 0, v0x27a4030_3; -v0x27a22d0_0 .alias "input30", 31 0, v0x27a4030_30; -v0x27a2580_0 .alias "input31", 31 0, v0x27a4030_31; -v0x27a24a0_0 .alias "input4", 31 0, v0x27a4030_4; -v0x27a2740_0 .alias "input5", 31 0, v0x27a4030_5; -v0x27a2650_0 .alias "input6", 31 0, v0x27a4030_6; -v0x27a2910_0 .alias "input7", 31 0, v0x27a4030_7; -v0x27a2810_0 .alias "input8", 31 0, v0x27a4030_8; -v0x27a2af0_0 .alias "input9", 31 0, v0x27a4030_9; -v0x27a29e0 .array "mux", 0 31; -v0x27a29e0_0 .net v0x27a29e0 0, 31 0, L_0x27a5260; 1 drivers -v0x27a29e0_1 .net v0x27a29e0 1, 31 0, L_0x27a0660; 1 drivers -v0x27a29e0_2 .net v0x27a29e0 2, 31 0, L_0x27a6880; 1 drivers -v0x27a29e0_3 .net v0x27a29e0 3, 31 0, L_0x27a6970; 1 drivers -v0x27a29e0_4 .net v0x27a29e0 4, 31 0, L_0x27a6a90; 1 drivers -v0x27a29e0_5 .net v0x27a29e0 5, 31 0, L_0x27a6bb0; 1 drivers -v0x27a29e0_6 .net v0x27a29e0 6, 31 0, L_0x27a6d10; 1 drivers -v0x27a29e0_7 .net v0x27a29e0 7, 31 0, L_0x27a6e00; 1 drivers -v0x27a29e0_8 .net v0x27a29e0 8, 31 0, L_0x27a6f20; 1 drivers -v0x27a29e0_9 .net v0x27a29e0 9, 31 0, L_0x27a7010; 1 drivers -v0x27a29e0_10 .net v0x27a29e0 10, 31 0, L_0x27a7190; 1 drivers -v0x27a29e0_11 .net v0x27a29e0 11, 31 0, L_0x27a72b0; 1 drivers -v0x27a29e0_12 .net v0x27a29e0 12, 31 0, L_0x27a7130; 1 drivers -v0x27a29e0_13 .net v0x27a29e0 13, 31 0, L_0x27a7500; 1 drivers -v0x27a29e0_14 .net v0x27a29e0 14, 31 0, L_0x27a76a0; 1 drivers -v0x27a29e0_15 .net v0x27a29e0 15, 31 0, L_0x27a77c0; 1 drivers -v0x27a29e0_16 .net v0x27a29e0 16, 31 0, L_0x27a7970; 1 drivers -v0x27a29e0_17 .net v0x27a29e0 17, 31 0, L_0x27a7a90; 1 drivers -v0x27a29e0_18 .net v0x27a29e0 18, 31 0, L_0x27a78e0; 1 drivers -v0x27a29e0_19 .net v0x27a29e0 19, 31 0, L_0x27a7ce0; 1 drivers -v0x27a29e0_20 .net v0x27a29e0 20, 31 0, L_0x27a7bb0; 1 drivers -v0x27a29e0_21 .net v0x27a29e0 21, 31 0, L_0x27a7f40; 1 drivers -v0x27a29e0_22 .net v0x27a29e0 22, 31 0, L_0x27a7e00; 1 drivers -v0x27a29e0_23 .net v0x27a29e0 23, 31 0, L_0x27a81b0; 1 drivers -v0x27a29e0_24 .net v0x27a29e0 24, 31 0, L_0x27a8060; 1 drivers -v0x27a29e0_25 .net v0x27a29e0 25, 31 0, L_0x27a8430; 1 drivers -v0x27a29e0_26 .net v0x27a29e0 26, 31 0, L_0x27a82d0; 1 drivers -v0x27a29e0_27 .net v0x27a29e0 27, 31 0, L_0x27a8690; 1 drivers -v0x27a29e0_28 .net v0x27a29e0 28, 31 0, L_0x27a1f60; 1 drivers -v0x27a29e0_29 .net v0x27a29e0 29, 31 0, L_0x27a8870; 1 drivers -v0x27a29e0_30 .net v0x27a29e0 30, 31 0, L_0x27a8780; 1 drivers -v0x27a29e0_31 .net v0x27a29e0 31, 31 0, L_0x27a8810; 1 drivers -v0x27a3020_0 .alias "out", 31 0, v0x27a42a0_0; -L_0x27a8990 .array/port v0x27a29e0, v0x2794cb0_0; -S_0x279f120 .scope module, "multiplexer2" "mux32to1by32" 3 46, 6 3, S_0x2795290; - .timescale 0 0; -L_0x279f480 .functor BUFZ 32, v0x279faa0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a8e70 .functor BUFZ 32, v0x279efd0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a8ed0 .functor BUFZ 32, v0x279eae0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a8f60 .functor BUFZ 32, v0x279e5f0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a9020 .functor BUFZ 32, v0x279e100_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a90b0 .functor BUFZ 32, v0x279dc10_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a9140 .functor BUFZ 32, v0x279d720_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a91a0 .functor BUFZ 32, v0x279d230_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a9230 .functor BUFZ 32, v0x279cd40_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a92c0 .functor BUFZ 32, v0x279c850_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a93b0 .functor BUFZ 32, v0x279c360_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a9440 .functor BUFZ 32, v0x279be70_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a9350 .functor BUFZ 32, v0x279b980_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a9500 .functor BUFZ 32, v0x279b490_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a9590 .functor BUFZ 32, v0x279afa0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a9620 .functor BUFZ 32, v0x279aab0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a9740 .functor BUFZ 32, v0x2797b10_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a97d0 .functor BUFZ 32, v0x2799ec0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a96b0 .functor BUFZ 32, v0x27999d0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a9900 .functor BUFZ 32, v0x27994e0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a9860 .functor BUFZ 32, v0x2798ff0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a9a40 .functor BUFZ 32, v0x2798b00_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a9990 .functor BUFZ 32, v0x2798610_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a9b90 .functor BUFZ 32, v0x2798120_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a9ad0 .functor BUFZ 32, v0x27966c0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a9cf0 .functor BUFZ 32, v0x2797620_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a9c20 .functor BUFZ 32, v0x2797130_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a9e30 .functor BUFZ 32, v0x2796c40_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a9d50 .functor BUFZ 32, v0x2796750_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a9f80 .functor BUFZ 32, v0x2796170_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a9e90 .functor BUFZ 32, v0x2795cb0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27a9f20 .functor BUFZ 32, v0x27957b0_0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -L_0x27aa2b0 .functor BUFZ 32, L_0x27a9fe0, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>, C4<00000000000000000000000000000000>; -v0x279f210_0 .net *"_s96", 31 0, L_0x27a9fe0; 1 drivers -v0x279f2d0_0 .alias "address", 4 0, v0x27a4420_0; -v0x279f380_0 .alias "input0", 31 0, v0x27a4030_0; -v0x279f400_0 .alias "input1", 31 0, v0x27a4030_1; -v0x279f4e0_0 .alias "input10", 31 0, v0x27a4030_10; -v0x279f590_0 .alias "input11", 31 0, v0x27a4030_11; -v0x279f650_0 .alias "input12", 31 0, v0x27a4030_12; -v0x279f700_0 .alias "input13", 31 0, v0x27a4030_13; -v0x279f7b0_0 .alias "input14", 31 0, v0x27a4030_14; -v0x279f860_0 .alias "input15", 31 0, v0x27a4030_15; -v0x279f970_0 .alias "input16", 31 0, v0x27a4030_16; -v0x279fa20_0 .alias "input17", 31 0, v0x27a4030_17; -v0x279fb40_0 .alias "input18", 31 0, v0x27a4030_18; -v0x279fbf0_0 .alias "input19", 31 0, v0x27a4030_19; -v0x279fd20_0 .alias "input2", 31 0, v0x27a4030_2; -v0x279fdd0_0 .alias "input20", 31 0, v0x27a4030_20; -v0x279fc70_0 .alias "input21", 31 0, v0x27a4030_21; -v0x279ff40_0 .alias "input22", 31 0, v0x27a4030_22; -v0x27a0060_0 .alias "input23", 31 0, v0x27a4030_23; -v0x27a00e0_0 .alias "input24", 31 0, v0x27a4030_24; -v0x279ffc0_0 .alias "input25", 31 0, v0x27a4030_25; -v0x27a0240_0 .alias "input26", 31 0, v0x27a4030_26; -v0x27a0190_0 .alias "input27", 31 0, v0x27a4030_27; -v0x27a03b0_0 .alias "input28", 31 0, v0x27a4030_28; -v0x27a02f0_0 .alias "input29", 31 0, v0x27a4030_29; -v0x27a0530_0 .alias "input3", 31 0, v0x27a4030_3; -v0x27a0460_0 .alias "input30", 31 0, v0x27a4030_30; -v0x27a06c0_0 .alias "input31", 31 0, v0x27a4030_31; -v0x27a05e0_0 .alias "input4", 31 0, v0x27a4030_4; -v0x27a0830_0 .alias "input5", 31 0, v0x27a4030_5; -v0x27a0770_0 .alias "input6", 31 0, v0x27a4030_6; -v0x27a09b0_0 .alias "input7", 31 0, v0x27a4030_7; -v0x27a08e0_0 .alias "input8", 31 0, v0x27a4030_8; -v0x27a0b40_0 .alias "input9", 31 0, v0x27a4030_9; -v0x27a0a60 .array "mux", 0 31; -v0x27a0a60_0 .net v0x27a0a60 0, 31 0, L_0x279f480; 1 drivers -v0x27a0a60_1 .net v0x27a0a60 1, 31 0, L_0x27a8e70; 1 drivers -v0x27a0a60_2 .net v0x27a0a60 2, 31 0, L_0x27a8ed0; 1 drivers -v0x27a0a60_3 .net v0x27a0a60 3, 31 0, L_0x27a8f60; 1 drivers -v0x27a0a60_4 .net v0x27a0a60 4, 31 0, L_0x27a9020; 1 drivers -v0x27a0a60_5 .net v0x27a0a60 5, 31 0, L_0x27a90b0; 1 drivers -v0x27a0a60_6 .net v0x27a0a60 6, 31 0, L_0x27a9140; 1 drivers -v0x27a0a60_7 .net v0x27a0a60 7, 31 0, L_0x27a91a0; 1 drivers -v0x27a0a60_8 .net v0x27a0a60 8, 31 0, L_0x27a9230; 1 drivers -v0x27a0a60_9 .net v0x27a0a60 9, 31 0, L_0x27a92c0; 1 drivers -v0x27a0a60_10 .net v0x27a0a60 10, 31 0, L_0x27a93b0; 1 drivers -v0x27a0a60_11 .net v0x27a0a60 11, 31 0, L_0x27a9440; 1 drivers -v0x27a0a60_12 .net v0x27a0a60 12, 31 0, L_0x27a9350; 1 drivers -v0x27a0a60_13 .net v0x27a0a60 13, 31 0, L_0x27a9500; 1 drivers -v0x27a0a60_14 .net v0x27a0a60 14, 31 0, L_0x27a9590; 1 drivers -v0x27a0a60_15 .net v0x27a0a60 15, 31 0, L_0x27a9620; 1 drivers -v0x27a0a60_16 .net v0x27a0a60 16, 31 0, L_0x27a9740; 1 drivers -v0x27a0a60_17 .net v0x27a0a60 17, 31 0, L_0x27a97d0; 1 drivers -v0x27a0a60_18 .net v0x27a0a60 18, 31 0, L_0x27a96b0; 1 drivers -v0x27a0a60_19 .net v0x27a0a60 19, 31 0, L_0x27a9900; 1 drivers -v0x27a0a60_20 .net v0x27a0a60 20, 31 0, L_0x27a9860; 1 drivers -v0x27a0a60_21 .net v0x27a0a60 21, 31 0, L_0x27a9a40; 1 drivers -v0x27a0a60_22 .net v0x27a0a60 22, 31 0, L_0x27a9990; 1 drivers -v0x27a0a60_23 .net v0x27a0a60 23, 31 0, L_0x27a9b90; 1 drivers -v0x27a0a60_24 .net v0x27a0a60 24, 31 0, L_0x27a9ad0; 1 drivers -v0x27a0a60_25 .net v0x27a0a60 25, 31 0, L_0x27a9cf0; 1 drivers -v0x27a0a60_26 .net v0x27a0a60 26, 31 0, L_0x27a9c20; 1 drivers -v0x27a0a60_27 .net v0x27a0a60 27, 31 0, L_0x27a9e30; 1 drivers -v0x27a0a60_28 .net v0x27a0a60 28, 31 0, L_0x27a9d50; 1 drivers -v0x27a0a60_29 .net v0x27a0a60 29, 31 0, L_0x27a9f80; 1 drivers -v0x27a0a60_30 .net v0x27a0a60 30, 31 0, L_0x27a9e90; 1 drivers -v0x27a0a60_31 .net v0x27a0a60 31, 31 0, L_0x27a9f20; 1 drivers -v0x27a0df0_0 .alias "out", 31 0, v0x27a4320_0; -L_0x27a9fe0 .array/port v0x27a0a60, v0x2794d60_0; -S_0x279ec30 .scope generate, "register_generate[1]" "register_generate[1]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x279ed28 .param/l "i" 3 34, +C4<01>; -S_0x279ede0 .scope module, "register" "register32" 3 35, 7 4, S_0x279ec30; - .timescale 0 0; -v0x279eed0_0 .alias "clk", 0 0, v0x27a4220_0; -v0x279ef50_0 .alias "d", 31 0, v0x27a4520_0; -v0x279efd0_0 .var "q", 31 0; -v0x279f070_0 .net "wrenable", 0 0, L_0x27a4800; 1 drivers -S_0x279e740 .scope generate, "register_generate[2]" "register_generate[2]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x279e838 .param/l "i" 3 34, +C4<010>; -S_0x279e8f0 .scope module, "register" "register32" 3 35, 7 4, S_0x279e740; - .timescale 0 0; -v0x279e9e0_0 .alias "clk", 0 0, v0x27a4220_0; -v0x279ea60_0 .alias "d", 31 0, v0x27a4520_0; -v0x279eae0_0 .var "q", 31 0; -v0x279eb80_0 .net "wrenable", 0 0, L_0x27a48a0; 1 drivers -S_0x279e250 .scope generate, "register_generate[3]" "register_generate[3]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x279e348 .param/l "i" 3 34, +C4<011>; -S_0x279e400 .scope module, "register" "register32" 3 35, 7 4, S_0x279e250; - .timescale 0 0; -v0x279e4f0_0 .alias "clk", 0 0, v0x27a4220_0; -v0x279e570_0 .alias "d", 31 0, v0x27a4520_0; -v0x279e5f0_0 .var "q", 31 0; -v0x279e690_0 .net "wrenable", 0 0, L_0x27a4940; 1 drivers -S_0x279dd60 .scope generate, "register_generate[4]" "register_generate[4]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x279de58 .param/l "i" 3 34, +C4<0100>; -S_0x279df10 .scope module, "register" "register32" 3 35, 7 4, S_0x279dd60; - .timescale 0 0; -v0x279e000_0 .alias "clk", 0 0, v0x27a4220_0; -v0x279e080_0 .alias "d", 31 0, v0x27a4520_0; -v0x279e100_0 .var "q", 31 0; -v0x279e1a0_0 .net "wrenable", 0 0, L_0x27a4a70; 1 drivers -S_0x279d870 .scope generate, "register_generate[5]" "register_generate[5]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x279d968 .param/l "i" 3 34, +C4<0101>; -S_0x279da20 .scope module, "register" "register32" 3 35, 7 4, S_0x279d870; - .timescale 0 0; -v0x279db10_0 .alias "clk", 0 0, v0x27a4220_0; -v0x279db90_0 .alias "d", 31 0, v0x27a4520_0; -v0x279dc10_0 .var "q", 31 0; -v0x279dcb0_0 .net "wrenable", 0 0, L_0x27a4b10; 1 drivers -S_0x279d380 .scope generate, "register_generate[6]" "register_generate[6]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x279d478 .param/l "i" 3 34, +C4<0110>; -S_0x279d530 .scope module, "register" "register32" 3 35, 7 4, S_0x279d380; - .timescale 0 0; -v0x279d620_0 .alias "clk", 0 0, v0x27a4220_0; -v0x279d6a0_0 .alias "d", 31 0, v0x27a4520_0; -v0x279d720_0 .var "q", 31 0; -v0x279d7c0_0 .net "wrenable", 0 0, L_0x27a4bb0; 1 drivers -S_0x279ce90 .scope generate, "register_generate[7]" "register_generate[7]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x279cf88 .param/l "i" 3 34, +C4<0111>; -S_0x279d040 .scope module, "register" "register32" 3 35, 7 4, S_0x279ce90; - .timescale 0 0; -v0x279d130_0 .alias "clk", 0 0, v0x27a4220_0; -v0x279d1b0_0 .alias "d", 31 0, v0x27a4520_0; -v0x279d230_0 .var "q", 31 0; -v0x279d2d0_0 .net "wrenable", 0 0, L_0x27a4c50; 1 drivers -S_0x279c9a0 .scope generate, "register_generate[8]" "register_generate[8]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x279ca98 .param/l "i" 3 34, +C4<01000>; -S_0x279cb50 .scope module, "register" "register32" 3 35, 7 4, S_0x279c9a0; - .timescale 0 0; -v0x279cc40_0 .alias "clk", 0 0, v0x27a4220_0; -v0x279ccc0_0 .alias "d", 31 0, v0x27a4520_0; -v0x279cd40_0 .var "q", 31 0; -v0x279cde0_0 .net "wrenable", 0 0, L_0x27a4e00; 1 drivers -S_0x279c4b0 .scope generate, "register_generate[9]" "register_generate[9]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x279c5a8 .param/l "i" 3 34, +C4<01001>; -S_0x279c660 .scope module, "register" "register32" 3 35, 7 4, S_0x279c4b0; - .timescale 0 0; -v0x279c750_0 .alias "clk", 0 0, v0x27a4220_0; -v0x279c7d0_0 .alias "d", 31 0, v0x27a4520_0; -v0x279c850_0 .var "q", 31 0; -v0x279c8f0_0 .net "wrenable", 0 0, L_0x27a4ea0; 1 drivers -S_0x279bfc0 .scope generate, "register_generate[10]" "register_generate[10]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x279c0b8 .param/l "i" 3 34, +C4<01010>; -S_0x279c170 .scope module, "register" "register32" 3 35, 7 4, S_0x279bfc0; - .timescale 0 0; -v0x279c260_0 .alias "clk", 0 0, v0x27a4220_0; -v0x279c2e0_0 .alias "d", 31 0, v0x27a4520_0; -v0x279c360_0 .var "q", 31 0; -v0x279c400_0 .net "wrenable", 0 0, L_0x27a4f40; 1 drivers -S_0x279bad0 .scope generate, "register_generate[11]" "register_generate[11]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x279bbc8 .param/l "i" 3 34, +C4<01011>; -S_0x279bc80 .scope module, "register" "register32" 3 35, 7 4, S_0x279bad0; - .timescale 0 0; -v0x279bd70_0 .alias "clk", 0 0, v0x27a4220_0; -v0x279bdf0_0 .alias "d", 31 0, v0x27a4520_0; -v0x279be70_0 .var "q", 31 0; -v0x279bf10_0 .net "wrenable", 0 0, L_0x27a4fe0; 1 drivers -S_0x279b5e0 .scope generate, "register_generate[12]" "register_generate[12]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x279b6d8 .param/l "i" 3 34, +C4<01100>; -S_0x279b790 .scope module, "register" "register32" 3 35, 7 4, S_0x279b5e0; - .timescale 0 0; -v0x279b880_0 .alias "clk", 0 0, v0x27a4220_0; -v0x279b900_0 .alias "d", 31 0, v0x27a4520_0; -v0x279b980_0 .var "q", 31 0; -v0x279ba20_0 .net "wrenable", 0 0, L_0x27a5080; 1 drivers -S_0x279b0f0 .scope generate, "register_generate[13]" "register_generate[13]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x279b1e8 .param/l "i" 3 34, +C4<01101>; -S_0x279b2a0 .scope module, "register" "register32" 3 35, 7 4, S_0x279b0f0; - .timescale 0 0; -v0x279b390_0 .alias "clk", 0 0, v0x27a4220_0; -v0x279b410_0 .alias "d", 31 0, v0x27a4520_0; -v0x279b490_0 .var "q", 31 0; -v0x279b530_0 .net "wrenable", 0 0, L_0x27a5120; 1 drivers -S_0x279ac00 .scope generate, "register_generate[14]" "register_generate[14]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x279acf8 .param/l "i" 3 34, +C4<01110>; -S_0x279adb0 .scope module, "register" "register32" 3 35, 7 4, S_0x279ac00; - .timescale 0 0; -v0x279aea0_0 .alias "clk", 0 0, v0x27a4220_0; -v0x279af20_0 .alias "d", 31 0, v0x27a4520_0; -v0x279afa0_0 .var "q", 31 0; -v0x279b040_0 .net "wrenable", 0 0, L_0x27a51c0; 1 drivers -S_0x279a750 .scope generate, "register_generate[15]" "register_generate[15]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x2797c68 .param/l "i" 3 34, +C4<01111>; -S_0x279a8c0 .scope module, "register" "register32" 3 35, 7 4, S_0x279a750; - .timescale 0 0; -v0x279a9b0_0 .alias "clk", 0 0, v0x27a4220_0; -v0x279aa30_0 .alias "d", 31 0, v0x27a4520_0; -v0x279aab0_0 .var "q", 31 0; -v0x279ab50_0 .net "wrenable", 0 0, L_0x27a52e0; 1 drivers -S_0x279a010 .scope generate, "register_generate[16]" "register_generate[16]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x279a108 .param/l "i" 3 34, +C4<010000>; -S_0x279a1c0 .scope module, "register" "register32" 3 35, 7 4, S_0x279a010; - .timescale 0 0; -v0x279a2b0_0 .alias "clk", 0 0, v0x27a4220_0; -v0x2797a90_0 .alias "d", 31 0, v0x27a4520_0; -v0x2797b10_0 .var "q", 31 0; -v0x2797bb0_0 .net "wrenable", 0 0, L_0x27a4cf0; 1 drivers -S_0x2799b20 .scope generate, "register_generate[17]" "register_generate[17]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x2799c18 .param/l "i" 3 34, +C4<010001>; -S_0x2799cd0 .scope module, "register" "register32" 3 35, 7 4, S_0x2799b20; - .timescale 0 0; -v0x2799dc0_0 .alias "clk", 0 0, v0x27a4220_0; -v0x2799e40_0 .alias "d", 31 0, v0x27a4520_0; -v0x2799ec0_0 .var "q", 31 0; -v0x2799f60_0 .net "wrenable", 0 0, L_0x27a5620; 1 drivers -S_0x2799630 .scope generate, "register_generate[18]" "register_generate[18]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x2799728 .param/l "i" 3 34, +C4<010010>; -S_0x27997e0 .scope module, "register" "register32" 3 35, 7 4, S_0x2799630; - .timescale 0 0; -v0x27998d0_0 .alias "clk", 0 0, v0x27a4220_0; -v0x2799950_0 .alias "d", 31 0, v0x27a4520_0; -v0x27999d0_0 .var "q", 31 0; -v0x2799a70_0 .net "wrenable", 0 0, L_0x27a56c0; 1 drivers -S_0x2799140 .scope generate, "register_generate[19]" "register_generate[19]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x2799238 .param/l "i" 3 34, +C4<010011>; -S_0x27992f0 .scope module, "register" "register32" 3 35, 7 4, S_0x2799140; - .timescale 0 0; -v0x27993e0_0 .alias "clk", 0 0, v0x27a4220_0; -v0x2799460_0 .alias "d", 31 0, v0x27a4520_0; -v0x27994e0_0 .var "q", 31 0; -v0x2799580_0 .net "wrenable", 0 0, L_0x27a5800; 1 drivers -S_0x2798c50 .scope generate, "register_generate[20]" "register_generate[20]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x2798d48 .param/l "i" 3 34, +C4<010100>; -S_0x2798e00 .scope module, "register" "register32" 3 35, 7 4, S_0x2798c50; - .timescale 0 0; -v0x2798ef0_0 .alias "clk", 0 0, v0x27a4220_0; -v0x2798f70_0 .alias "d", 31 0, v0x27a4520_0; -v0x2798ff0_0 .var "q", 31 0; -v0x2799090_0 .net "wrenable", 0 0, L_0x27a58a0; 1 drivers -S_0x2798760 .scope generate, "register_generate[21]" "register_generate[21]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x2798858 .param/l "i" 3 34, +C4<010101>; -S_0x2798910 .scope module, "register" "register32" 3 35, 7 4, S_0x2798760; - .timescale 0 0; -v0x2798a00_0 .alias "clk", 0 0, v0x27a4220_0; -v0x2798a80_0 .alias "d", 31 0, v0x27a4520_0; -v0x2798b00_0 .var "q", 31 0; -v0x2798ba0_0 .net "wrenable", 0 0, L_0x27a5760; 1 drivers -S_0x2798270 .scope generate, "register_generate[22]" "register_generate[22]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x2798368 .param/l "i" 3 34, +C4<010110>; -S_0x2798420 .scope module, "register" "register32" 3 35, 7 4, S_0x2798270; - .timescale 0 0; -v0x2798510_0 .alias "clk", 0 0, v0x27a4220_0; -v0x2798590_0 .alias "d", 31 0, v0x27a4520_0; -v0x2798610_0 .var "q", 31 0; -v0x27986b0_0 .net "wrenable", 0 0, L_0x27a59f0; 1 drivers -S_0x2797d80 .scope generate, "register_generate[23]" "register_generate[23]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x2797e78 .param/l "i" 3 34, +C4<010111>; -S_0x2797f30 .scope module, "register" "register32" 3 35, 7 4, S_0x2797d80; - .timescale 0 0; -v0x2798020_0 .alias "clk", 0 0, v0x27a4220_0; -v0x27980a0_0 .alias "d", 31 0, v0x27a4520_0; -v0x2798120_0 .var "q", 31 0; -v0x27981c0_0 .net "wrenable", 0 0, L_0x27a5940; 1 drivers -S_0x2797770 .scope generate, "register_generate[24]" "register_generate[24]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x2797868 .param/l "i" 3 34, +C4<011000>; -S_0x2797920 .scope module, "register" "register32" 3 35, 7 4, S_0x2797770; - .timescale 0 0; -v0x2797a10_0 .alias "clk", 0 0, v0x27a4220_0; -v0x27965b0_0 .alias "d", 31 0, v0x27a4520_0; -v0x27966c0_0 .var "q", 31 0; -v0x2797cd0_0 .net "wrenable", 0 0, L_0x27a5b50; 1 drivers -S_0x2797280 .scope generate, "register_generate[25]" "register_generate[25]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x2797378 .param/l "i" 3 34, +C4<011001>; -S_0x2797430 .scope module, "register" "register32" 3 35, 7 4, S_0x2797280; - .timescale 0 0; -v0x2797520_0 .alias "clk", 0 0, v0x27a4220_0; -v0x27975a0_0 .alias "d", 31 0, v0x27a4520_0; -v0x2797620_0 .var "q", 31 0; -v0x27976c0_0 .net "wrenable", 0 0, L_0x27a5a90; 1 drivers -S_0x2796d90 .scope generate, "register_generate[26]" "register_generate[26]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x2796e88 .param/l "i" 3 34, +C4<011010>; -S_0x2796f40 .scope module, "register" "register32" 3 35, 7 4, S_0x2796d90; - .timescale 0 0; -v0x2797030_0 .alias "clk", 0 0, v0x27a4220_0; -v0x27970b0_0 .alias "d", 31 0, v0x27a4520_0; -v0x2797130_0 .var "q", 31 0; -v0x27971d0_0 .net "wrenable", 0 0, L_0x27a5cc0; 1 drivers -S_0x27968a0 .scope generate, "register_generate[27]" "register_generate[27]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x2796998 .param/l "i" 3 34, +C4<011011>; -S_0x2796a50 .scope module, "register" "register32" 3 35, 7 4, S_0x27968a0; - .timescale 0 0; -v0x2796b40_0 .alias "clk", 0 0, v0x27a4220_0; -v0x2796bc0_0 .alias "d", 31 0, v0x27a4520_0; -v0x2796c40_0 .var "q", 31 0; -v0x2796ce0_0 .net "wrenable", 0 0, L_0x27a5bf0; 1 drivers -S_0x2796290 .scope generate, "register_generate[28]" "register_generate[28]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x2796388 .param/l "i" 3 34, +C4<011100>; -S_0x2796440 .scope module, "register" "register32" 3 35, 7 4, S_0x2796290; - .timescale 0 0; -v0x2796530_0 .alias "clk", 0 0, v0x27a4220_0; -v0x2796640_0 .alias "d", 31 0, v0x27a4520_0; -v0x2796750_0 .var "q", 31 0; -v0x27967f0_0 .net "wrenable", 0 0, L_0x27a5e40; 1 drivers -S_0x2795dd0 .scope generate, "register_generate[29]" "register_generate[29]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x2795ec8 .param/l "i" 3 34, +C4<011101>; -S_0x2795f80 .scope module, "register" "register32" 3 35, 7 4, S_0x2795dd0; - .timescale 0 0; -v0x2796070_0 .alias "clk", 0 0, v0x27a4220_0; -v0x27960f0_0 .alias "d", 31 0, v0x27a4520_0; -v0x2796170_0 .var "q", 31 0; -v0x2796210_0 .net "wrenable", 0 0, L_0x27a5d60; 1 drivers -S_0x27958e0 .scope generate, "register_generate[30]" "register_generate[30]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x27959d8 .param/l "i" 3 34, +C4<011110>; -S_0x2795a70 .scope module, "register" "register32" 3 35, 7 4, S_0x27958e0; - .timescale 0 0; -v0x2795b60_0 .alias "clk", 0 0, v0x27a4220_0; -v0x2795be0_0 .alias "d", 31 0, v0x27a4520_0; -v0x2795cb0_0 .var "q", 31 0; -v0x2795d50_0 .net "wrenable", 0 0, L_0x27a5fd0; 1 drivers -S_0x2795380 .scope generate, "register_generate[31]" "register_generate[31]" 3 34, 3 34, S_0x2795290; - .timescale 0 0; -P_0x2794e88 .param/l "i" 3 34, +C4<011111>; -S_0x27954f0 .scope module, "register" "register32" 3 35, 7 4, S_0x2795380; - .timescale 0 0; -v0x2795630_0 .alias "clk", 0 0, v0x27a4220_0; -v0x2795700_0 .alias "d", 31 0, v0x27a4520_0; -v0x27957b0_0 .var "q", 31 0; -v0x2795830_0 .net "wrenable", 0 0, L_0x27a5ee0; 1 drivers -E_0x27955e0 .event posedge, v0x274a130_0; -S_0x2778d40 .scope module, "tester" "hw4testbench" 2 37, 2 79, S_0x2778ec0; - .timescale 0 0; -v0x274a130_0 .var "Clk", 0 0; -v0x2794b70_0 .alias "ReadData1", 31 0, v0x27a42a0_0; -v0x2794c10_0 .alias "ReadData2", 31 0, v0x27a4320_0; -v0x2794cb0_0 .var "ReadRegister1", 4 0; -v0x2794d60_0 .var "ReadRegister2", 4 0; -v0x2794e00_0 .var "RegWrite", 0 0; -v0x2794ee0_0 .var "WriteData", 31 0; -v0x2794f80_0 .var "WriteRegister", 4 0; -v0x2795050_0 .net "begintest", 0 0, v0x27a4620_0; 1 drivers -v0x27950f0_0 .var "dutpassed", 0 0; -v0x27951f0_0 .var "endtest", 0 0; -E_0x27564f0 .event posedge, v0x2795050_0; - .scope S_0x279ede0; -T_0 ; - %wait E_0x27955e0; - %load/v 8, v0x279f070_0, 1; - %jmp/0xz T_0.0, 8; - %load/v 8, v0x279ef50_0, 32; - %set/v v0x279efd0_0, 8, 32; -T_0.0 ; - %jmp T_0; - .thread T_0; - .scope S_0x279e8f0; -T_1 ; - %wait E_0x27955e0; - %load/v 8, v0x279eb80_0, 1; - %jmp/0xz T_1.0, 8; - %load/v 8, v0x279ea60_0, 32; - %set/v v0x279eae0_0, 8, 32; -T_1.0 ; - %jmp T_1; - .thread T_1; - .scope S_0x279e400; -T_2 ; - %wait E_0x27955e0; - %load/v 8, v0x279e690_0, 1; - %jmp/0xz T_2.0, 8; - %load/v 8, v0x279e570_0, 32; - %set/v v0x279e5f0_0, 8, 32; -T_2.0 ; - %jmp T_2; - .thread T_2; - .scope S_0x279df10; -T_3 ; - %wait E_0x27955e0; - %load/v 8, v0x279e1a0_0, 1; - %jmp/0xz T_3.0, 8; - %load/v 8, v0x279e080_0, 32; - %set/v v0x279e100_0, 8, 32; -T_3.0 ; - %jmp T_3; - .thread T_3; - .scope S_0x279da20; -T_4 ; - %wait E_0x27955e0; - %load/v 8, v0x279dcb0_0, 1; - %jmp/0xz T_4.0, 8; - %load/v 8, v0x279db90_0, 32; - %set/v v0x279dc10_0, 8, 32; -T_4.0 ; - %jmp T_4; - .thread T_4; - .scope S_0x279d530; -T_5 ; - %wait E_0x27955e0; - %load/v 8, v0x279d7c0_0, 1; - %jmp/0xz T_5.0, 8; - %load/v 8, v0x279d6a0_0, 32; - %set/v v0x279d720_0, 8, 32; -T_5.0 ; - %jmp T_5; - .thread T_5; - .scope S_0x279d040; -T_6 ; - %wait E_0x27955e0; - %load/v 8, v0x279d2d0_0, 1; - %jmp/0xz T_6.0, 8; - %load/v 8, v0x279d1b0_0, 32; - %set/v v0x279d230_0, 8, 32; -T_6.0 ; - %jmp T_6; - .thread T_6; - .scope S_0x279cb50; -T_7 ; - %wait E_0x27955e0; - %load/v 8, v0x279cde0_0, 1; - %jmp/0xz T_7.0, 8; - %load/v 8, v0x279ccc0_0, 32; - %set/v v0x279cd40_0, 8, 32; -T_7.0 ; - %jmp T_7; - .thread T_7; - .scope S_0x279c660; -T_8 ; - %wait E_0x27955e0; - %load/v 8, v0x279c8f0_0, 1; - %jmp/0xz T_8.0, 8; - %load/v 8, v0x279c7d0_0, 32; - %set/v v0x279c850_0, 8, 32; -T_8.0 ; - %jmp T_8; - .thread T_8; - .scope S_0x279c170; -T_9 ; - %wait E_0x27955e0; - %load/v 8, v0x279c400_0, 1; - %jmp/0xz T_9.0, 8; - %load/v 8, v0x279c2e0_0, 32; - %set/v v0x279c360_0, 8, 32; -T_9.0 ; - %jmp T_9; - .thread T_9; - .scope S_0x279bc80; -T_10 ; - %wait E_0x27955e0; - %load/v 8, v0x279bf10_0, 1; - %jmp/0xz T_10.0, 8; - %load/v 8, v0x279bdf0_0, 32; - %set/v v0x279be70_0, 8, 32; -T_10.0 ; - %jmp T_10; - .thread T_10; - .scope S_0x279b790; -T_11 ; - %wait E_0x27955e0; - %load/v 8, v0x279ba20_0, 1; - %jmp/0xz T_11.0, 8; - %load/v 8, v0x279b900_0, 32; - %set/v v0x279b980_0, 8, 32; -T_11.0 ; - %jmp T_11; - .thread T_11; - .scope S_0x279b2a0; -T_12 ; - %wait E_0x27955e0; - %load/v 8, v0x279b530_0, 1; - %jmp/0xz T_12.0, 8; - %load/v 8, v0x279b410_0, 32; - %set/v v0x279b490_0, 8, 32; -T_12.0 ; - %jmp T_12; - .thread T_12; - .scope S_0x279adb0; -T_13 ; - %wait E_0x27955e0; - %load/v 8, v0x279b040_0, 1; - %jmp/0xz T_13.0, 8; - %load/v 8, v0x279af20_0, 32; - %set/v v0x279afa0_0, 8, 32; -T_13.0 ; - %jmp T_13; - .thread T_13; - .scope S_0x279a8c0; -T_14 ; - %wait E_0x27955e0; - %load/v 8, v0x279ab50_0, 1; - %jmp/0xz T_14.0, 8; - %load/v 8, v0x279aa30_0, 32; - %set/v v0x279aab0_0, 8, 32; -T_14.0 ; - %jmp T_14; - .thread T_14; - .scope S_0x279a1c0; -T_15 ; - %wait E_0x27955e0; - %load/v 8, v0x2797bb0_0, 1; - %jmp/0xz T_15.0, 8; - %load/v 8, v0x2797a90_0, 32; - %set/v v0x2797b10_0, 8, 32; -T_15.0 ; - %jmp T_15; - .thread T_15; - .scope S_0x2799cd0; -T_16 ; - %wait E_0x27955e0; - %load/v 8, v0x2799f60_0, 1; - %jmp/0xz T_16.0, 8; - %load/v 8, v0x2799e40_0, 32; - %set/v v0x2799ec0_0, 8, 32; -T_16.0 ; - %jmp T_16; - .thread T_16; - .scope S_0x27997e0; -T_17 ; - %wait E_0x27955e0; - %load/v 8, v0x2799a70_0, 1; - %jmp/0xz T_17.0, 8; - %load/v 8, v0x2799950_0, 32; - %set/v v0x27999d0_0, 8, 32; -T_17.0 ; - %jmp T_17; - .thread T_17; - .scope S_0x27992f0; -T_18 ; - %wait E_0x27955e0; - %load/v 8, v0x2799580_0, 1; - %jmp/0xz T_18.0, 8; - %load/v 8, v0x2799460_0, 32; - %set/v v0x27994e0_0, 8, 32; -T_18.0 ; - %jmp T_18; - .thread T_18; - .scope S_0x2798e00; -T_19 ; - %wait E_0x27955e0; - %load/v 8, v0x2799090_0, 1; - %jmp/0xz T_19.0, 8; - %load/v 8, v0x2798f70_0, 32; - %set/v v0x2798ff0_0, 8, 32; -T_19.0 ; - %jmp T_19; - .thread T_19; - .scope S_0x2798910; -T_20 ; - %wait E_0x27955e0; - %load/v 8, v0x2798ba0_0, 1; - %jmp/0xz T_20.0, 8; - %load/v 8, v0x2798a80_0, 32; - %set/v v0x2798b00_0, 8, 32; -T_20.0 ; - %jmp T_20; - .thread T_20; - .scope S_0x2798420; -T_21 ; - %wait E_0x27955e0; - %load/v 8, v0x27986b0_0, 1; - %jmp/0xz T_21.0, 8; - %load/v 8, v0x2798590_0, 32; - %set/v v0x2798610_0, 8, 32; -T_21.0 ; - %jmp T_21; - .thread T_21; - .scope S_0x2797f30; -T_22 ; - %wait E_0x27955e0; - %load/v 8, v0x27981c0_0, 1; - %jmp/0xz T_22.0, 8; - %load/v 8, v0x27980a0_0, 32; - %set/v v0x2798120_0, 8, 32; -T_22.0 ; - %jmp T_22; - .thread T_22; - .scope S_0x2797920; -T_23 ; - %wait E_0x27955e0; - %load/v 8, v0x2797cd0_0, 1; - %jmp/0xz T_23.0, 8; - %load/v 8, v0x27965b0_0, 32; - %set/v v0x27966c0_0, 8, 32; -T_23.0 ; - %jmp T_23; - .thread T_23; - .scope S_0x2797430; -T_24 ; - %wait E_0x27955e0; - %load/v 8, v0x27976c0_0, 1; - %jmp/0xz T_24.0, 8; - %load/v 8, v0x27975a0_0, 32; - %set/v v0x2797620_0, 8, 32; -T_24.0 ; - %jmp T_24; - .thread T_24; - .scope S_0x2796f40; -T_25 ; - %wait E_0x27955e0; - %load/v 8, v0x27971d0_0, 1; - %jmp/0xz T_25.0, 8; - %load/v 8, v0x27970b0_0, 32; - %set/v v0x2797130_0, 8, 32; -T_25.0 ; - %jmp T_25; - .thread T_25; - .scope S_0x2796a50; -T_26 ; - %wait E_0x27955e0; - %load/v 8, v0x2796ce0_0, 1; - %jmp/0xz T_26.0, 8; - %load/v 8, v0x2796bc0_0, 32; - %set/v v0x2796c40_0, 8, 32; -T_26.0 ; - %jmp T_26; - .thread T_26; - .scope S_0x2796440; -T_27 ; - %wait E_0x27955e0; - %load/v 8, v0x27967f0_0, 1; - %jmp/0xz T_27.0, 8; - %load/v 8, v0x2796640_0, 32; - %set/v v0x2796750_0, 8, 32; -T_27.0 ; - %jmp T_27; - .thread T_27; - .scope S_0x2795f80; -T_28 ; - %wait E_0x27955e0; - %load/v 8, v0x2796210_0, 1; - %jmp/0xz T_28.0, 8; - %load/v 8, v0x27960f0_0, 32; - %set/v v0x2796170_0, 8, 32; -T_28.0 ; - %jmp T_28; - .thread T_28; - .scope S_0x2795a70; -T_29 ; - %wait E_0x27955e0; - %load/v 8, v0x2795d50_0, 1; - %jmp/0xz T_29.0, 8; - %load/v 8, v0x2795be0_0, 32; - %set/v v0x2795cb0_0, 8, 32; -T_29.0 ; - %jmp T_29; - .thread T_29; - .scope S_0x27954f0; -T_30 ; - %wait E_0x27955e0; - %load/v 8, v0x2795830_0, 1; - %jmp/0xz T_30.0, 8; - %load/v 8, v0x2795700_0, 32; - %set/v v0x27957b0_0, 8, 32; -T_30.0 ; - %jmp T_30; - .thread T_30; - .scope S_0x27a2b70; -T_31 ; - %wait E_0x27955e0; - %set/v v0x279faa0_0, 0, 32; - %jmp T_31; - .thread T_31; - .scope S_0x2778d40; -T_32 ; - %set/v v0x2794ee0_0, 0, 32; - %set/v v0x2794cb0_0, 0, 5; - %set/v v0x2794d60_0, 0, 5; - %set/v v0x2794f80_0, 0, 5; - %set/v v0x2794e00_0, 0, 1; - %set/v v0x274a130_0, 0, 1; - %end; - .thread T_32; - .scope S_0x2778d40; -T_33 ; - %wait E_0x27564f0; - %set/v v0x27951f0_0, 0, 1; - %set/v v0x27950f0_0, 1, 1; - %delay 10, 0; - %movi 8, 2, 5; - %set/v v0x2794f80_0, 8, 5; - %movi 8, 42, 32; - %set/v v0x2794ee0_0, 8, 32; - %set/v v0x2794e00_0, 1, 1; - %movi 8, 2, 5; - %set/v v0x2794cb0_0, 8, 5; - %movi 8, 2, 5; - %set/v v0x2794d60_0, 8, 5; - %delay 5, 0; - %set/v v0x274a130_0, 1, 1; - %delay 5, 0; - %set/v v0x274a130_0, 0, 1; - %vpi_call 2 122 "$display", "Written: %d Write: %d Read: %d %d Read1: %d Read2: %d", v0x2794ee0_0, v0x2794f80_0, v0x2794cb0_0, v0x2794d60_0, v0x2794b70_0, v0x2794c10_0; - %load/v 8, v0x2794b70_0, 32; - %cmpi/u 8, 42, 32; - %inv 4, 1; - %mov 8, 4, 1; - %load/v 9, v0x2794c10_0, 32; - %cmpi/u 9, 42, 32; - %inv 4, 1; - %or 8, 4, 1; - %jmp/0xz T_33.0, 8; - %set/v v0x27950f0_0, 0, 1; - %vpi_call 2 128 "$display", "Test Case 1 Failed"; -T_33.0 ; - %movi 8, 2, 5; - %set/v v0x2794f80_0, 8, 5; - %movi 8, 15, 32; - %set/v v0x2794ee0_0, 8, 32; - %set/v v0x2794e00_0, 1, 1; - %movi 8, 2, 5; - %set/v v0x2794cb0_0, 8, 5; - %movi 8, 2, 5; - %set/v v0x2794d60_0, 8, 5; - %delay 5, 0; - %set/v v0x274a130_0, 1, 1; - %delay 5, 0; - %set/v v0x274a130_0, 0, 1; - %vpi_call 2 140 "$display", "Written: %d Write: %d Read: %d %d Read1: %d Read2: %d", v0x2794ee0_0, v0x2794f80_0, v0x2794cb0_0, v0x2794d60_0, v0x2794b70_0, v0x2794c10_0; - %load/v 8, v0x2794b70_0, 32; - %cmpi/u 8, 15, 32; - %inv 4, 1; - %mov 8, 4, 1; - %load/v 9, v0x2794c10_0, 32; - %cmpi/u 9, 15, 32; - %inv 4, 1; - %or 8, 4, 1; - %jmp/0xz T_33.2, 8; - %set/v v0x27950f0_0, 0, 1; - %vpi_call 2 145 "$display", "Test Case 2 Failed"; -T_33.2 ; - %movi 8, 23, 5; - %set/v v0x2794f80_0, 8, 5; - %movi 8, 1432, 32; - %set/v v0x2794ee0_0, 8, 32; - %set/v v0x2794e00_0, 1, 1; - %movi 8, 23, 5; - %set/v v0x2794cb0_0, 8, 5; - %movi 8, 23, 5; - %set/v v0x2794d60_0, 8, 5; - %delay 5, 0; - %set/v v0x274a130_0, 1, 1; - %delay 5, 0; - %set/v v0x274a130_0, 0, 1; - %vpi_call 2 156 "$display", "Written: %d Write: %d Read: %d %d Read1: %d Read2: %d", v0x2794ee0_0, v0x2794f80_0, v0x2794cb0_0, v0x2794d60_0, v0x2794b70_0, v0x2794c10_0; - %load/v 8, v0x2794b70_0, 32; - %cmpi/u 8, 1432, 32; - %inv 4, 1; - %mov 8, 4, 1; - %load/v 9, v0x2794c10_0, 32; - %cmpi/u 9, 1432, 32; - %inv 4, 1; - %or 8, 4, 1; - %jmp/0xz T_33.4, 8; - %set/v v0x27950f0_0, 0, 1; - %vpi_call 2 161 "$display", "Test Case 3 Failed"; -T_33.4 ; - %movi 8, 23, 5; - %set/v v0x2794f80_0, 8, 5; - %movi 8, 33, 32; - %set/v v0x2794ee0_0, 8, 32; - %set/v v0x2794e00_0, 0, 1; - %movi 8, 23, 5; - %set/v v0x2794cb0_0, 8, 5; - %movi 8, 23, 5; - %set/v v0x2794d60_0, 8, 5; - %delay 5, 0; - %set/v v0x274a130_0, 1, 1; - %delay 5, 0; - %set/v v0x274a130_0, 0, 1; - %vpi_call 2 172 "$display", "Written: %d Write: %d Read: %d %d Read1: %d Read2: %d", v0x2794ee0_0, v0x2794f80_0, v0x2794cb0_0, v0x2794d60_0, v0x2794b70_0, v0x2794c10_0; - %load/v 8, v0x2794b70_0, 32; - %cmpi/u 8, 1432, 32; - %inv 4, 1; - %mov 8, 4, 1; - %load/v 9, v0x2794c10_0, 32; - %cmpi/u 9, 1432, 32; - %inv 4, 1; - %or 8, 4, 1; - %jmp/0xz T_33.6, 8; - %set/v v0x27950f0_0, 0, 1; - %vpi_call 2 177 "$display", "Test Case 4 Failed"; -T_33.6 ; - %movi 8, 23, 5; - %set/v v0x2794f80_0, 8, 5; - %movi 8, 33, 32; - %set/v v0x2794ee0_0, 8, 32; - %set/v v0x2794e00_0, 1, 1; - %movi 8, 2, 5; - %set/v v0x2794cb0_0, 8, 5; - %movi 8, 2, 5; - %set/v v0x2794d60_0, 8, 5; - %delay 5, 0; - %set/v v0x274a130_0, 1, 1; - %delay 5, 0; - %set/v v0x274a130_0, 0, 1; - %vpi_call 2 188 "$display", "Written: %d Write: %d Read: %d %d Read1: %d Read2: %d", v0x2794ee0_0, v0x2794f80_0, v0x2794cb0_0, v0x2794d60_0, v0x2794b70_0, v0x2794c10_0; - %load/v 8, v0x2794b70_0, 32; - %cmpi/u 8, 15, 32; - %inv 4, 1; - %mov 8, 4, 1; - %load/v 9, v0x2794c10_0, 32; - %cmpi/u 9, 15, 32; - %inv 4, 1; - %or 8, 4, 1; - %jmp/0xz T_33.8, 8; - %set/v v0x27950f0_0, 0, 1; - %vpi_call 2 193 "$display", "Test Case 5 Failed"; -T_33.8 ; - %set/v v0x2794f80_0, 0, 5; - %movi 8, 33, 32; - %set/v v0x2794ee0_0, 8, 32; - %set/v v0x2794e00_0, 1, 1; - %set/v v0x2794cb0_0, 0, 5; - %set/v v0x2794d60_0, 0, 5; - %delay 5, 0; - %set/v v0x274a130_0, 1, 1; - %delay 5, 0; - %set/v v0x274a130_0, 0, 1; - %vpi_call 2 204 "$display", "Written: %d Write: %d Read: %d %d Read1: %d Read2: %d", v0x2794ee0_0, v0x2794f80_0, v0x2794cb0_0, v0x2794d60_0, v0x2794b70_0, v0x2794c10_0; - %load/v 8, v0x2794b70_0, 32; - %cmpi/u 8, 0, 32; - %inv 4, 1; - %mov 8, 4, 1; - %load/v 9, v0x2794c10_0, 32; - %cmpi/u 9, 0, 32; - %inv 4, 1; - %or 8, 4, 1; - %jmp/0xz T_33.10, 8; - %set/v v0x27950f0_0, 0, 1; - %vpi_call 2 209 "$display", "Test Case 6 Failed"; -T_33.10 ; - %set/v v0x2794f80_0, 1, 5; - %movi 8, 1432, 32; - %set/v v0x2794ee0_0, 8, 32; - %set/v v0x2794e00_0, 1, 1; - %set/v v0x2794cb0_0, 1, 5; - %set/v v0x2794d60_0, 1, 5; - %delay 5, 0; - %set/v v0x274a130_0, 1, 1; - %delay 5, 0; - %set/v v0x274a130_0, 0, 1; - %vpi_call 2 220 "$display", "Written: %d Write: %d Read: %d %d Read1: %d Read2: %d", v0x2794ee0_0, v0x2794f80_0, v0x2794cb0_0, v0x2794d60_0, v0x2794b70_0, v0x2794c10_0; - %load/v 8, v0x2794b70_0, 32; - %cmpi/u 8, 1432, 32; - %inv 4, 1; - %mov 8, 4, 1; - %load/v 9, v0x2794c10_0, 32; - %cmpi/u 9, 1432, 32; - %inv 4, 1; - %or 8, 4, 1; - %jmp/0xz T_33.12, 8; - %set/v v0x27950f0_0, 0, 1; - %vpi_call 2 225 "$display", "Test Case 7 Failed"; -T_33.12 ; - %movi 8, 30, 5; - %set/v v0x2794f80_0, 8, 5; - %movi 8, 2543, 32; - %set/v v0x2794ee0_0, 8, 32; - %set/v v0x2794e00_0, 1, 1; - %movi 8, 30, 5; - %set/v v0x2794cb0_0, 8, 5; - %set/v v0x2794d60_0, 1, 5; - %delay 5, 0; - %set/v v0x274a130_0, 1, 1; - %delay 5, 0; - %set/v v0x274a130_0, 0, 1; - %vpi_call 2 236 "$display", "Written: %d Write: %d Read: %d %d Read1: %d Read2: %d", v0x2794ee0_0, v0x2794f80_0, v0x2794cb0_0, v0x2794d60_0, v0x2794b70_0, v0x2794c10_0; - %load/v 8, v0x2794b70_0, 32; - %cmpi/u 8, 2543, 32; - %inv 4, 1; - %mov 8, 4, 1; - %load/v 9, v0x2794c10_0, 32; - %cmpi/u 9, 1432, 32; - %inv 4, 1; - %or 8, 4, 1; - %jmp/0xz T_33.14, 8; - %set/v v0x27950f0_0, 0, 1; - %vpi_call 2 241 "$display", "Test Case 8 Failed"; -T_33.14 ; - %movi 8, 1, 5; - %set/v v0x2794f80_0, 8, 5; - %movi 8, 2543, 32; - %set/v v0x2794ee0_0, 8, 32; - %set/v v0x2794e00_0, 1, 1; - %movi 8, 23, 5; - %set/v v0x2794cb0_0, 8, 5; - %movi 8, 1, 5; - %set/v v0x2794d60_0, 8, 5; - %delay 5, 0; - %set/v v0x274a130_0, 1, 1; - %delay 5, 0; - %set/v v0x274a130_0, 0, 1; - %vpi_call 2 252 "$display", "Written: %d Write: %d Read: %d %d Read1: %d Read2: %d", v0x2794ee0_0, v0x2794f80_0, v0x2794cb0_0, v0x2794d60_0, v0x2794b70_0, v0x2794c10_0; - %load/v 8, v0x2794b70_0, 32; - %cmpi/u 8, 33, 32; - %inv 4, 1; - %mov 8, 4, 1; - %load/v 9, v0x2794c10_0, 32; - %cmpi/u 9, 2543, 32; - %inv 4, 1; - %or 8, 4, 1; - %jmp/0xz T_33.16, 8; - %set/v v0x27950f0_0, 0, 1; - %vpi_call 2 257 "$display", "Test Case 9 Failed"; -T_33.16 ; - %delay 5, 0; - %set/v v0x27951f0_0, 1, 1; - %jmp T_33; - .thread T_33; - .scope S_0x2778ec0; -T_34 ; - %set/v v0x27a4620_0, 0, 1; - %delay 10, 0; - %set/v v0x27a4620_0, 1, 1; - %delay 1000, 0; - %end; - .thread T_34; - .scope S_0x2778ec0; -T_35 ; - %wait E_0x2754e50; - %vpi_call 2 62 "$display", "DUT passed?: %b", v0x27a46a0_0; - %jmp T_35; - .thread T_35; -# The file index is used to find the file name in the following table. -:file_names 8; - "N/A"; - ""; - "regfile.t.v"; - "./regfile.v"; - "./decoders.v"; - "./register32zero.v"; - "./mux32to1by32.v"; - "./register32.v";