From e33704e439f68975d9348aa1ad42976bc7ecd73e Mon Sep 17 00:00:00 2001 From: RandyGaul Date: Sat, 23 Mar 2024 16:59:29 -0700 Subject: [PATCH] finished shallow water sample --- include/cute_draw.h | 1 + include/shaders/draw.glsl | 2 +- samples/shallow_water.cpp | 96 +- samples/shallow_water_data/scene.ase | Bin 0 -> 18953 bytes samples/shallow_water_data/shallow_water.glsl | 38 +- .../shallow_water_data/shallow_water_shader.h | 10097 ++++++++-------- src/shaders/sprite_shader.h | 330 +- 7 files changed, 5616 insertions(+), 4948 deletions(-) create mode 100644 samples/shallow_water_data/scene.ase diff --git a/include/cute_draw.h b/include/cute_draw.h index 7153078e7..aa4790e0f 100644 --- a/include/cute_draw.h +++ b/include/cute_draw.h @@ -1301,6 +1301,7 @@ CF_INLINE void draw_quad_fill(Aabb bb, float chubbiness = 0) { cf_draw_quad_fill CF_INLINE void draw_quad_fill(v2 p0, v2 p1, v2 p2, v2 p3, float chubbiness = 0) { cf_draw_quad_fill2(p0, p1, p2, p3, chubbiness); } CF_INLINE void draw_box(Aabb bb, float thickness = 1.0f, float chubbiness = 0) { cf_draw_quad(bb, thickness, chubbiness); } CF_INLINE void draw_box(v2 p0, v2 p1, v2 p2, v2 p3, float thickness = 1.0f, float chubbiness = 0) { cf_draw_quad2(p0, p1, p2, p3, thickness, chubbiness); } +CF_INLINE void draw_box(v2 p, float w, float h, float thickness = 1.0f, float chubbiness = 0) { cf_draw_quad(make_aabb(p, w, h), thickness, chubbiness); } CF_INLINE void draw_box_fill(Aabb bb, float chubbiness = 0) { cf_draw_quad_fill(bb, chubbiness); } CF_INLINE void draw_box_fill(v2 p0, v2 p1, v2 p2, v2 p3, float chubbiness = 0) { cf_draw_quad_fill2(p0, p1, p2, p3, chubbiness); } CF_INLINE void draw_circle(Circle circle, float thickness = 1.0f) { cf_draw_circle(circle, thickness); } diff --git a/include/shaders/draw.glsl b/include/shaders/draw.glsl index fd2b37241..158076b93 100644 --- a/include/shaders/draw.glsl +++ b/include/shaders/draw.glsl @@ -335,7 +335,7 @@ float distance_triangle(vec2 p, vec2 a, vec2 b, vec2 c) c = (!is_sprite && !is_text && !is_tri) ? sdf(c, v_col, d - v_radius) : c; c *= v_alpha; - vec2 screen_position = (v_posH + vec2(1,1)) * 0.5; + vec2 screen_position = (v_posH + vec2(1,1)) * 0.5 * vec2(1,-1); c = shader(c, v_pos, screen_position, v_user); if (c.a == 0) discard; result = c; diff --git a/samples/shallow_water.cpp b/samples/shallow_water.cpp index 65f3e6216..0441b35a5 100644 --- a/samples/shallow_water.cpp +++ b/samples/shallow_water.cpp @@ -13,6 +13,17 @@ void mount_content_directory_as(const char* dir) fs_mount(path.c_str(), dir); } +CF_Pixel* get_noise(int w, int h, float time) +{ + float scale = 2.5f; + float lacunarity = 2.0f; + int octaves = 3; + float falloff = 0.5f; + float frequency = 0.5f; + float time_amplitude = 0.05f; + return cf_noise_fbm_pixels_wrapped(w, h, 0, scale, lacunarity, octaves, falloff, time * frequency, time_amplitude); +} + int main(int argc, char* argv[]) { int options = APP_OPTIONS_DEFAULT_GFX_CONTEXT | APP_OPTIONS_WINDOW_POS_CENTERED | APP_OPTIONS_RESIZABLE; @@ -22,8 +33,12 @@ int main(int argc, char* argv[]) mount_content_directory_as("/"); app_init_imgui(); + int W = 160; + int H = 120; + CF_Shader shader = CF_MAKE_SOKOL_SHADER(shallow_water_shader); CF_Canvas offscreen = make_canvas(canvas_defaults(160, 120)); + CF_Canvas scene_canvas = make_canvas(canvas_defaults(160, 120)); struct Wavelet { @@ -35,33 +50,98 @@ int main(int argc, char* argv[]) Array wavelets; - auto add_wavelet = [&](int x, int y) { - Wavelet w; - w.p = V2(x*0.25f - 80, (-y+480)*0.25f - 60); - wavelets.add(w); + struct Spawner + { + v2 p = V2(0,0); + int count = 3; + float opacity = 1.0f; + Routine rt = { }; + }; + + Array spawners; + + auto add_wavelet = [&](v2 p, float opacity) { + Wavelet& w = wavelets.add(); + w.p = p; + w.opacity = opacity; + }; + + auto add_spawner = [&](int x, int y) { + Spawner& s = spawners.add(); + s.p = V2(x*0.25f - 80, (-y+480)*0.25f - 60); }; + float time = 0; + CF_TextureParams tex_params = texture_defaults(W, H); + tex_params.usage = USAGE_TYPE_STREAM; + CF_Texture noise_tex = make_texture(tex_params); + CF_Sprite scene = make_sprite("/scene.ase"); + while (app_is_running()) { + time += CF_DELTA_TIME; + CF_Pixel* noise = get_noise(W, H, time); + update_texture(noise_tex, noise, sizeof(CF_Pixel) * W * H); + cf_free(noise); + app_update(); camera_dimensions(160, 120); + ImGui::Begin("Shallow Water Sample"); + static bool show_noise; + ImGui::Checkbox("Show noise", &show_noise); + static bool show_normals; + ImGui::Checkbox("Show normals", &show_normals); + ImGui::End(); + if (mouse_just_pressed(MOUSE_BUTTON_LEFT)) { - add_wavelet(mouse_x(), mouse_y()); + add_spawner(mouse_x(), mouse_y()); } - for (int i = 0; i < wavelets.size(); ++i) { + for (int i = 0; i < spawners.size(); ++i) { + Spawner& s = spawners[i]; + s.opacity = max(0.0f, s.opacity - 0.6f * CF_DELTA_TIME); + + rt_begin(s.rt, CF_DELTA_TIME) + { + add_wavelet(s.p, s.opacity); + s.count--; + if (!s.count) { + spawners.unordered_remove(i--); + } + } + rt_wait(0.75f) + { + nav_restart(); + } + rt_end(); + } + + for (int i = 0; i < wavelets.count(); ++i) { Wavelet& w = wavelets[i]; draw_push_antialias_scale(w.blur); draw_push_color(make_color(1.0f, 1.0f, 1.0f, w.opacity)); draw_circle(w.p, w.r, 0); w.r += 10.0f * CF_DELTA_TIME; - w.opacity -= 0.5f * CF_DELTA_TIME; + w.opacity -= 0.4f * CF_DELTA_TIME; w.blur += 20.0f * CF_DELTA_TIME; if (w.opacity < 0) { - wavelets.unordered_remove(i++); + wavelets.unordered_remove(i--); } } + render_to(offscreen, true); + + draw_sprite(scene); + render_to(scene_canvas, true); + + render_settings_push_shader(shader); + render_settings_push_texture("wavelets_tex", canvas_get_target(offscreen)); + render_settings_push_texture("noise_tex", noise_tex); + render_settings_push_texture("scene_tex", canvas_get_target(scene_canvas)); + render_settings_push_uniform("show_noise", show_noise ? 1.0f : 0.0f); + render_settings_push_uniform("show_normals", show_normals ? 1.0f : 0.0f); + draw_push_antialias(false); + draw_box(V2(0,0), (float)W, (float)H); app_draw_onto_screen(); } diff --git a/samples/shallow_water_data/scene.ase b/samples/shallow_water_data/scene.ase new file mode 100644 index 0000000000000000000000000000000000000000..256dba674a01c98b59989b52b81302f2172dae38 GIT binary patch literal 18953 zcmcG$dq7iHzAxT6PLDJ77TWq?swi!(1)-Rk5ky{zR*|AYKnWCL$h6iXAfy-q1V}QD zZK+V83P|OV2&jRCkd{{<A`3om>OfB*N_OE3J+^X3b$!2kYV zd|ioq;RVO)i_b=V5guS0{JrswXG8wma4GQX*WY;Q*LVK-Z=d}3a?4JC2yXq(U*W6o zfk^oJ_Q^E(8gb@t@O59or|>oHA4TvrdZ-P)W;@wX0NnWZo;iCuhC6^;!%g9Ka3i<{ zd^>zEeB(~feQ#{|Z7BFB+`$VkzHstG^0|xm--lnm0WT2rB?SG)Z}eQ8^FZBwswJKW+ z10v8}$}KS~EUhRPa$RnF_buou)DdwN3dqh_L{&Jv$-p*A`~>yU50sRBUunuwLwZy`U{ z<$v9sR5n0**6_^QR<$Wg~Oj5BJRj;(UT7+y&kWOO!p3pQ_h0+M^s0g+0dP$zHCg_=6mUJqj=B*9S%e^gOd-6bqb)Osz)~7(1q0 z8XZOIx8p54j$;o#+yRw?_i36}#!TU19gLM=(qEQja#M`VTfgrrlp) zj-q(t&h+j6$A z_IJlWR9GMSep6+-OVgQNq{zK{kgr=mBvAWFysTMMOSIW7IPJ0|^>Nt?pLO$Cl+2;b z^huEbwBGZN#0LbnuZT*IxM7Br&wrl7L%k8CN1*%^Y) zx-AYg8eYIcb8HZ#60j)s3-u%a|nwxTRyMj zRks5e19;$^Y^&sQAGJu`fqM&bIV1Q;JAv7?TICqBffJO|TTZDXs=HJBO|x~;sUhBz z4i&jwz4yxQ3D?=BzJPK}{>=gR>joKEtG6mh6*3#Rj3?omwxrJK!Q zJOA0}UC_)y9!+|cWIMfXQ5t15p^QNrwNKl_O?OL~QZOM7$drW{_D>sDy%uY&Rw@Hd6k=DTq*Lhf3R$w)NXTm)C{fR{9 zTlr_#qtOC^Z^vqL{f1D{^ubSeXikEBrEP^LmM*Lz11{`JB6Ax3CqwxVPi|XxB^7m+ zR9}Pc(>9aJ&5&_$?wxx}J6YySEb?2pc94dp5Hx-yCd<)R2|b)+=HIkB(qb#X2c?q~ z9rczVUO6!k@s$HvKdxCrcARndP?A(kyzYAg*k(M1p?UhPCH=`-8rUFSp(GAD&w*`x z^aI+kEoLOdWeRBpdmF(nQKA*eM!)YH;Bx6K;VaQRM@pX;y9{3n6+{KFP9@R4>#n2+ zDcrH(NCCa0sL~nh1|JcVXd*d}?>tlCO<_2$wYfjS`9!C7xzMo6O18BZ?VIra=q*Ti8bc{;dUz)Po=rei)VrxCFx0%&U=E!{aSaTTT(sSo{BOI5 zqrC|YVQw6yQ_`L-{zkefCMH=<;Qi6ylUXLqF*7*(9?%ZJYV1W`(8wERqFC#dD}uz~ zK4Ah2G^CuP%zwo#q?j4knHSu504b|HlV!24A3QbvpCs#2-JOLKhROAaPW|O9>TXDQ zmwBJI#kwor^1AEq`o!y-2MqgJS=C1@f1CF11En&`Z5_kZ4#*s3sW_yr&&&u#V|>F6 zVQMPuIIOuOVp_wUh2w_AI`07^+%Ru9G~&#j(cGu?yO2U}{j6TwvoC(MekMt&>%aHn zWWSX%5%I)WlT{69#plmRqp~!nu}qA(IRe^McmSPb?A6j{iURcSkYp{hWv_14tWZ8U z=Q3@dCEdfZeGD@W(fQ~?+k=qNt5Bi6d2JWG#KKe+QFj1;bfl=nFGVG#WeV89yVwRC zWmN;o{HW&}H4lCNv~*;zJHQQ$A@~I8!QvtGIC_n|QZfvko_>cU8QmK{np#;Df>PVm z()?Lqc33o^$-W9*uMjWcXfvfuOUDw4ZOU1#rZU=I8FO6gN9@7(Bg-3kr&sH{g*HOC zGML2*N{&tu*EnrC&{apJ(+1iSbXQ@oR(y_f#hF>jEieda<3j@{DrWm0x|r6qP*V#) zSU4dm>at$c8ps(A@L`8Dd#+*W`~AC4H78pC-d&SRMJI&?MEbR(7+KUViDbE1^%{O< z28_aBHJEGbSGK_hAaixo0~rSi3wZ}v*HW`6{-Er3j>(c7k4uf4@lVH{kw@#;2OqL5 zn#++S5u%9@WQqf?7AKaVQ=^kzv_GuHR#XtbIDl@m#FQjpQ4uKS0zp#VM*wV0SwBWm zTsS^kltfzH0uSZWxe?wb`GfII3i4|$h)Lp%W5OQ3la_IE0E=y2BRZvO9-h%QNfzIahbX zGoe`bZa55(^;M1XHL>p5+q{;{i0T<@9m{q}`{!J0X@C6&nIOs*M=CVS?JkQ;;jp?z z<@Fnq$cL00So`>{tJE@P*O^x(y(IThWrI338qFd(wg-A)NQ+idfxC-THKPmeS)YY_ zJPeO@6>?C%;2%j>_mpXugco*VWI<+)EXF+>oUF>3`x(b&6L=DPmT}7Q{#b7^K1FQ4 z__HMgu`yfheNA#=tL+?cw<)ZSdlH<*CNI$*MICp)qADi|&+lwoXG>796;p19a!uS! zG3}{^LG5VTz_9`x8?Te)?gd)cnQ-6(KZM*q)+ZLmVB8Io_C@ar$_L6y#hcmU8K>v@ z@=js=jxtP>2i$D!_g&r$7so1IE8Q|lREsyewz@6SE4=)lv1LPJqkPLJ)|$LDS-U}5 z>b1od=ZeN`Ov4cIebl|!GNBcLD`l8ovzwG6e_SnWhuAfHXz!^PKXu9k->^C9o=|@Lz8k#!ILGsRO00!{KzFm@p<4pM4jm@w51LH2TjS+^nnc zggqmt#LH$oo##y!Dy>9Xd`=Z+C#2HS0ZZ_tG+Gs_5QU442E+p2yT@^FU;2A4*i?PC5Gjo52+wysSYc22XLM zNJv7VI9SJzvtgb|a*x6*o#xCdp*?bGE_x-moVO0fEQ)uI-CIx;Cn&}Jh_}5u=aIQ| zdeqM??39Fu#s3`lKJO)!zJ6ta&Sm5)24&-)W1QuV=Hf_OTvWIGa6ex3`DK=~v_ykj zeW=eZk*4XsY4G@!UT4t>R}_>nw}#A{C{SU+!}G72{p_+H`rGgi(cGqoBZy=cy|-`l4NEVGtUUj zAKU_^4J9`9D%^(oLv^Su>ip8BT1|rbn$dPqGvuDN6Dl^`E~B+z`DJA#c$F?@w6$_W zuajx7x0=KsFCcL~v$yP;>#koV2%b~|B{c=a?UWi0N)gm zY4z3Y^GpaH@kpgp*(=ji+9}30fA~GZ-JyPRpaj4UAtK9%2NC0!6jZ7C(3+j87C4!E z$7sv4&qFiV+CzQ!DJF%&c|nKDp%sJa=D#4II5$b;Gjdt|G?z0x>v$WhQ3(EfuW&Ps zexCko^JcjzN<~?`rLh5c=nNa7WVolaMIqvjh_9b|%TqDV%%wv)$PkT9%R51^T6w^F zS%EV3I@m@$w$PL9b<|3!^J%x2tcT;6v*6dy%=T5N2M#S%w`VOLPvSZ*Lo$JaQom!C zkm#bWC?-x^4U{bEkQB)!?K-Bz6^P!SE6RvPLD9-7 z?PoTzpTMg75k?7~>rguW8bqa1hM(I?+h_Ag4x)?LUWv$CLT*7MSTwbST$J3iR3@Ex z(i$SW3jW!BP{`%zsxEHL)~HL?q+&h!0?XN)g3_h%=xPj_OI)031lepOJyt{{K9O#Jnf^VzWJ+3$U^OgKAiXXSQrsu zzq>IVd`a@TI%0jDGc8tt6KB3OY67!-zgT}c*elIAb?_lJb%rwKd(aRYAihQ)t}5*< z(NFKFc@lMB8#Y!ipVQUL8U4QTNK+^jiA7Fed&MYXxczQCDDS*}qlJC#yf?$0&ihp*HQT)2f(+km zd{o@7yEY(RrapiNK)j@iJq_E>!QeTM7UJ_3kb6<5n+rEVWZ^r|&Fpoq%!@KU&*7+*EKW;7z-t2uxC6BVaI<$9}WxrDp zPg+#Lz8xc^An2U#V2Lnz^{02L8u)51u6@xOv|?hPB)(Arb~$whVlw4@O9GH%04Do+ zNZ#|P@G3O$i-h?fROiUg-y_$Cb^R2)pt?Yze~!^l5svDg z32+k~2!IZAA`Me8!sVHrQHO%<(wuFZS68|zXpZ?uk~G*iz>t}~-4+jC(?(|a9bxMQ zXyl!RJe4jDB`5vOMGdv3QTVX50L8ki%Ge(2Daqw!a=!%8PPyF@wA}|DO19f`nMY^% z4Ud=}(8S#v09&u+K?K($Y4Ow>25w;5&=0e;36Q4;d;?k{_2NZQ#}VVI~q;x^AvTeYgaNZ zIsa3=WJoa8Tuf6lT6v&=E@Xo%CEunW(`pVR#lD-ZSV%|9mb zcr|Xjn%6nz2Pa@9_%K`R;QxxYaagR&7bwN9KaE_PuFp@0+?8sQ83Pju(w(^ zQ!)VXp=HxjSc@n3znsB79yEkytkL-ah+@OKQ3YspZX#c1iyGzb;p8cwd$KOY~$J-=^V z8`^{qDWU`MAi5uwdvyTPfwSgoOGraFVCx@j1@6w+)S|D<_&TtU0ruo~(A!m%Wt^_? z+`?Zao3Q%SQiL6mg7#?mB#(K^04;J>1{q+uZAH>xrLKVKa}TYD-9QTij&()ZRW+mp zLJ~=MT$!Rdl>Y-~&WD58VvF$@E#xg?n>5sLBtu*>d}rZ8i?;&2t?L5P7H$hsdKAXJ zb7}b9ji2bS4R^p#bMS>$UO(ypJAN z$WsqcGmz{tc43Ce-sd_AqIq~#Tldqn1$MMwbOQ;c7`zD_0T#OOwUF_f*eOw}VdLz4 zIaTa|NZY~h$AYFPUsPwVxstr9%^zXZw~1{O>I|(%BsZMJ=_?wxiS@-NfLI$o8r9{l z)PDaizD+y&y0@XEWM3|DH+N?HD9hciAQn&xT(wY{$se{D>YLrgS*z@7ULUmpl3Omr zFi7!vz8+$G?z%JGM)uOvt3<%qN+4HiKJIiDp|w`C=;Pd)F5g<2C_ckYRVCUhpFZXfL($i60Ej)~uGQ(zgYJ~_JsC3^8pk*UxZs8s%ivzYae2olLV=f-(g5^TR*IS7!_a`4)j)w-jl~& zzdQf}1NJZU+-w-syP3j(V;E^ut|hZk#tPjUy8=#H4e!Zvr{^?knmqp<$i+ubl&CA$ z5i8NERh#yKBf}t2Jbhm|HFH3d=n9pP7R4>3aLzvbPXmlDzmI_}(c&Zv4XbH2hi*li zsBPAAHIql+=?TyhgSLE~KWR>^Z+K!)%5OpX1j;6LY+lCsI!a=XNMVI{0UbZ34=h3<1d1lQILaJ`~Tv?Cf7*gd6tZ|R1!+{$Iyf98zy zp0-W<&yYeA(&z42a;%q@N%gX12_u-&AWpb)?LTEd0jVJ9e4ATyYRB+svWgp?t@}3tVS$Xp1%XnqFQ~wSFTo#wL!R zT4m38XGe4Vc*o5 z;W`c!d~LqcBiMZzd`pyJe;VzfK6PHC19UcK*?UuU;vywi8`fb-ULx+O$$boGCozn1 z=|*;6N#puN9_>pcfdZwR16)pOgZLA0YG&iq|Jh%Iv%z9BI^@p(B+*%A*PxH=@_B5u zU)Q8QYbKUWX)X1eUF2AnNqt z2$91132^5`I=;v%RHAPeUxU7-qHsI~|69kaGu&I0TIeHkOXJ1>_p-K~m&McYmDfuT}3v++R%mO+g6tO3sq)P>9p;~v)12?TSQ@z!%K$Uo$kIIy=u-M*G@TF!dS~NPzz8-rk9KIX$=`IRcIGjM5ZjsWrnVmZ>o~c?acC6JSCj>e`7a{P z45qrr{iceb!ejidK^Mt}YoRsrd{1uiSJDZ0B?r!&NjtAXB?rAnXlZ^OtWj3Px`Nz? zXd`z}YwE(d;({e%4w8W4p>c$iNus|1^(Yt!h5jvb8 z2OnCmN;Zy}0?e9QU9K!nQ8MiVOQLJnUP1$oTAr*6d)=7s^~?5H9F(CaP; zZc!!Or>)2W%Ey*V=13Nd+iAb*qZhev>U+kD+LZE$g)|qnPL{H?W2v(7;hg`{R4Gm2 z*JnvsWq82UWW(7&Z`GJW7wqz-Fi4tfsE;-H`b+|~#~mh#Bh+srOqca!oRGEazk}oC z=iRvjX)S6-swc!cy6eu+_gDsRjkrcpz)JKrg@&OE?GGH95Pwzo{_17qS0XfDJR8d| z`-947LU11B(GfdpvY}3O!>#iDEK9C|@h+hmL_#Pl46`0gbU*;x)@nU_z(Wo6vl0zWMk1IDF_3&FSo`UkRxs@Qs{z;NQV=kcr! zTW2b;lWcaD(`P3)i^|7LHh+^+kcYA1QW=HzFN?b2AhobN%kRAz*~X9 z+#zstpbTqElcOh!b9G1r6s=>a(F&f7AEAUmn$y1)&T{Q3MJlYV)sS<-uig3LQtAvT zHA5&m_DEYs+Qq4$x3gi;cus{^^S>O6MBN!;!HfXv>jvg|fhVYD*cDq4WH4O60jGQ5 z*fhrN1G)tzlq!d{j4Ne?ayy7|x+y6e&ZG(Ja~R5EG#VppA;wgWhooZi@iym|>yihX zPpRKF{&c4nEo2n6*>*4ar#H;NAl6{Nk<&b{k|k?OY=jp7M+eUXMOlrEJmu@7ol)1I zY`886hwIO=1y6)*jDj;{ZW2->4rM5;{kAOI38jMitz%0db&}e?`r!Edp&-9PU@dkn zs@WK{BJd7t)~)Lg7y<3~`=yGAuSB}XQB|9m2md?^CHWl#U(`pZczs3J42$!Ok(w~c z3Bu{rU7;Apf&h&jEsb~g{+3AHrwv)*`q-%%=Y4H{HZ()-vkH_dvk|r3yYH5rmH+dW zSh(c7NR)%h;~g1XK)b#CAUun1}I! zT7XnBq3PDs_NSkCx^1)mz1lmXTj7eAM?Mq6-Ean5G?pm@VUYjF{zkt$+Q-|n^6zVV zv&9Nqf@uS1S#$?*lDP+XXum_Utz774IJXIW=!|d;b=E@yLFUroAVk^_7f$-lEH62; z-NP{f`;NhQ|5|g-CeuloOh5FbsvLs>`$cfw?0k$Z6epII{+0v>zXi$fk)GYxNv@i_ z?#g|%u>_h0lADfXYS1#D2bn?(Y+A<BC6Uc$rEXie2ZO^ILWixM(>A+f|882j=eMG z*br4}n)rzQ<01hgXNzC4d?XCJSQVRECb0KhOe#b@a!k>A^dq2q3azphIJ|yc=rr)t z$~#~nP!zy;Qf(tv&2QlHpMH}5Xz*hVRE~mH%G}SCcr9sPQ?Z^ePS?v;cY}}41=LXRc+u64*qc)0b!hlPuZ%crc@JhP!(O`ke+eHQVGn8fiFfN7KVLr@d zg&$838^)VN93V@#Jde7vK{%H>lG#CG+rMktz&im{W{E88t91lX{PyybGE801YG-w< z6665cHjG@usW3mRt7)~JizXC`)fB99O8N|d9H8edycB{a1r2Lfo)YTsy@|1ySElqs zW%LbOnR-{8@{#Rh8Jkkvns#@x5Z6ACa1EVzDn@|9BE!_ z3K9lY3N9aLm2R%mq#>5A%*CY_*931vR`aW@3>KGwY4H9;_xX?EQ=)FeX-7#&MxzI+ z_!yUJ?d8?vZPrIkJcVBy2(VADR-hmpjOADSOOpVy-# z)XIN_+w8J*u3ALbTl7zl%C=Vd+f6$yvtxTE4yxK%j@5fB!TJ5`uFl#WeC>~YHL3YG z3ldC@Q&j$tYz#5w{6ag-B9iUgrktMUd5#JD8IlnyLgPNxJual2%g7P@qhhKMBbO=l zah1#l1YbMS$9Rs$ok7I{aHcKGtU}mLDogq>b)4MpY_ncjFAH(=-mh%H=$gkI>GCs& zB(YgLb7?7>0qM&IUxfxdM7(LWjPZWK%XPw;{`Dc#wCPBeHP;I8I`w6ze9><9{EI*o zXI_NW5eoBCmn<+%;M;tQ!`m(!@W5Lh2py={4^vv;;6go$-O|#|Qzl{N1W1yU%hGHL z=Wxdt@AF!_$hb$t9@GJIVOwoXPQdS$+FIP7QZ+NO4Dofk&2c|9{InU=r4MT&Py*%R_k>C(?}#UIsA}$u z@%;QGjtZU0v0-)Pwnk?|lX43D1}T=uc2V+AWIO~L9Pd}Q-+Q&geoOLVE^QWLfH4EU z9mo}wBbhMpYh<&0s=yH1L2}~4;NEktb8Nwx0%T1iZ3cWm84f?ozEArJ&QI^tb_^}U zi%5k83h~sKV;oLLK3Q8M${n-P+2AdB8eylWXXW@jp)JLZB(85lg$ z0!ziOzE)gq-!J5@6rVJmjeu0X9~e$dL@{8rdowUZ=VEn>;W8<=y)3_Rfd#MIyK9c5 zc;cgN#v^j(k5@B{mWwwQ(J6j(^XV+c)Le>$q8My;vFuUg3&-%4VQ>N2_PpLkevavm zu|~ssNKq88cpOcWW?`_9Q%0ET}w;Lh6-Dj{Wc|LLLZ&T{6fH$mNyLLV5=2HUS1U*%XonMC{ zPN7J)CTp~!7?od4^;=H9zTvjLxQSK#5?l&*9h2>s6a~0@&1q{x?`Ga~{f8t7za$Qf zbK1&Wou*Ny5G>h2n`7~Qd=7oX81faTjp*4Z!n`*tHbr{ac39yZ!k~(vwW&v`3ir%4 z9|Ll)RA=AghU*{O2`i$k?xuOMk&>h2dEn_g(}vxcvIXmR24~T|m6Z(!w*^T+wYZ({ z0~=PNXNLMpev$g=e}ng*n!zOaoArQxs*W{RzZDbak`(zE~Obu zgP@Z#;I~@-Z)3$-RyfZ6oX$b@7$v3pkX<0x2*~pJ%VWUG=JW0&BVm!;ej9!6YfRl{ z-Y+{VHVDOGZ;!-|*VKc3j{6Gkf!NUMgA8CDd>4vw{dJfwN5EC*NZxH7-9{HMud~EXw#~$6?M&;f-c7!R{_Zw>w0`%LI@A@$+toiEV1~GdKc8Y@>ix1PaJ9x3v*dVb4=mxP)NAWU+_RpSHO?X~ z%ehlu^S}~n7P-MP~3rkZ3r4AFJwtHLweZ5BO)37 z;X#sKiw*I%=BVWAX<2DITn`~MHmTpb0(C_#Q#4zYWSaD+d$c6ln7b@0bd;t2e)iTX z;{c)E{w8FYEQosMg*24sQ?bG3CjJld23?8T%AqPpE(I9bjZ7JFBK)jmd_SSxX*+|q zOw68J5?_eUiNcSRp2EcpnI>|bOk9rp3@6aoH2?htb&q{Os=PpNvr`@C8_#xp^K4T! zuIEE6iqHS{$v{9O!{1K@Hm4Nf(_HT6+R3>!>5km)V_RDy(=!C{7TvVXO`Yk-$zdf6 zVo~>qD&6#}R$rW_Hji`qsFWN_+ldsfe@SU3i_9%WHflXA9^(@aa%wvEOq#^-l!}-S z?W`FMb_i`zS-?r1D8+bWwUUH97XC1@hV@i7zHzF#AETPft3yZx=2@-wy>q-@2UuQhK^S#*W6vMW6#{V z_BRn+M7`9y*9aJS*+z@>NEM2uy|pGP2W}BtwdQT^UhRjCqkN>e%3U_kDcuX5CY@W_ zkC4ULV!}TSg6o)H7E!kFa&Mf#!4*kAjDL;aN#e^(K+rSQc^)@Jc<%A6?#m_S1Hzgt zBik5eu>5ISGk*W#$pUKI+p8M83pRI4K8Vy~w0*zmyQcQRMXHw2YJ~tTzgoZ0=6g^A z@15<(-cm+N-ng_gcT$T9@gh8KG|ar_DTqDi_rdVlvw$UEGW+?M5)1o-OC92d{2jIy z09odrwZnF9=+EPn4%xXq)lcS;1}DZEA)%zW$IaMjQ{H0{EBus8v>Y)tm%7KS`BhDy zsnPS^DMyywbYpwB=sk)tX!XUCgp^f$SZ1N+=Do;MYC-e$dYG%WPEi!!93t?m+dvMT z4Lc2Dvd_j8)BZ@pLy)2EH~7A9U37LiYzdq5M8=xc_rVs^hJ{>aZbui22z_ zx=A%4e&Sp=OSWN%j4c}xe(F=YbYTwZx~rMjxG-RO17=|XEEk%X-hU^&yhrZ;tY5<2 zxqmZ>HP?XNY*n^#xC+W+lu!EBX&1?y>(%@lv*Eu@H#P#`02E$6z7CSw zziOurPvb@7PCe&IUlr&4?!hSE7cmDc)JZ_Nvwln`1`Etrg>4UIzq*IB8yHl zMpBj^HLQVeVh0fsG*0sU^RTV;Jq? z7@aBqgN4$IniQ`nS*FXiHAs_HQhc)UL=7X_WHs0RSe~-0@8U<-!4M5njEdGJ5@9l1 zH`zsUm!1%kl%dakD*o9Paq|+6i8Z0z2Q*U$uhTJbQNF@UqE#w*sZ(=BQp^_K2fFJ; zt`31E$}wa*ueANl^LjGhn1zAY`))!Sv`<2Y$idbR`xsJC2BQP{33Z#2?3E6dlF8J~<&Is{ z9PsKh`e16N?8Bav`M(Y6`j>DN(bTa&*iU9dGp6a0u6NQ+JhNZphKc4xxRiOi4QAAY z0S?|vk|Kq*ouQ#CQ@qO5Y#3gzmRaqkercjBjvEa?AINg~M04|80^3(%d?cKkUO~Zj zKr#D_8b<1>nctR$gv-47Z$ppfpPs3O3jcNX*<+;o??qhWX4AYMmu0Xl=T({?D3gM( zsCnxtG2w}|VQB1pB8H|YrUMKc83-GrFmF+g+0m7wM2cf}s9H&A7x+`~jhE#x#%;%9 zDAL@yhWY^w%K;vbZu4kC?$7YyfM@$U>(M~?{;0*JS4?7jw_U)a!T~OD#@X28Y|HnH zz)x7xOziF>St#{j8t^Bpof|67@anr4o6aqfGRkxmMq#Cd=ue>_yvCBuRO zhb6;=6q1pYylgd^_;adGzveV*MHbDDugn>#lwKqahx)heI;RG$_J~mNbK!`zlsInI z*)oMpYF||Aw1lRxvnj|g=2@^$HS!uQtU<&WEg-?-xUkmT;Xqlc=A+k;vV&Qhq)Du9=l#Ubvna%L{hJ}f80`@wC_no zYy-XI8+G}0ajr$m+9xeN5uH%!EWbgURC=a^H$fPj3!Q?us`M)pPNKtv2#)2`R+CMTW6_940#k#~9tbv2og@rq@KbC`_fg*R$RE z)!O-b$*ckSP(s`8b4t9;&dr4V)`ittg-Hr?;bF#?$U3aFSKOzeY(rV`$`MY97OIt< zSCv{mn?IB*O_985I@9QIDnWZ*fmiH;|I!~vK2(>HWq3o*lv@;&Vys2lS{i-izQvVN z$oOefmjwYj2i!`ew{bq=BEITA?Yr<>l09ZdFcp?hhCh681eO_(&(Q-9+4~ujV2`hk zQ_68ObshCV0tQqaGdUlI^HEvLBcL0pIl@@*pP(RxcG`6W9+d{5}?fEy?OW)iMwIX#@ zQd&sZO*=D?fkPH4a@U9}yiacycvV3HlGbxD^v}^Wmd3J}J03o))2#VUIr+2RoYm4& zM*6~ILvOFt~Md(Yjp6%L;GQt1C^lmj<<#n8K-vCLOGQ`n^h zRql<{j9vd4bGU<%J)t!du5?+eytiSti_E+Dc-?))O|O&JbVdE${Fo=>Vn3D;VLDNg zNWWp@jzG-EGUZtZSCvk*DLTm~N27pJ#jAwAjySQ47g&Yt@pZECA3Z|$ea zNqAN4tZrN5CZ0t-RD(6&u=aP=WH)PF$m6q)Ka5;T^Xr~}Ir|vS5(xO8XVf|0A2y!q zLl8{t3uSM&kh{7eJ+*QE_werT<1Ow72x&0o8%{vONfLG!<0j>ldAEUoVnS4Q0)KAd z7N>#24fDoPdUEq}8F!b9=NeNV`1OKyWyxcNB1*g*Ux>=schr8aP$W2q6k=4(yX}_? zTCBk)kiYPTHE!KLyBN(a60#gJtqd!k5)c6=r(%>twmLeBS}cto1Z=&tkr0BK=f2MaTR;a|_10cL1sAPMN_E93ts)IbNk*N6BSy<0*gP@#F{Lw`_G>Tq zY2o7AZZTXSB>UrHDf(@3_HU^ael=gek1w*iJCT!)L;CVuOJHOXQ+lIb$z`ccI8-|G zQHj2ro9o+Qy|ING`c`-z(@&)158oP6z!Y=hVfere5t1Qih4R>{wHr z?#s)2j3n$VRz@x`?H^7nSq!cSV!tP2!Ub=AVZ1WFh>|kGjp&{Mdq}314T_-??z`sX zXoU%+HB_`tdRFARR2wR1KU7pAh3v1R?FUTbxuWyaScjYim7?Yp;g z&zJSvS~Lya933n&q^pJ<1yyl&4QNBTvtwy0wZk-0vs8u(~R z%Sk{nm;)RGc7^IV7SEZ{rmw&d9b5*W(BKn?u=V*&-;NEz`A_kK-EvY5ovmtI34+!xn^$`g&66Rpd8(%x?Zj? z@rNWoNK`Zy2A1zYk2CsAS$@n$N^Om6L`EWE`RnqBH863WQziE{cM|UyL@mLY-7^-M5rhf?gBC?2BB7!`{9+seb^vYPom9;kq|#5SC150yO(5*)`qvEt?_`{A=N*VfBf`w7%u5BdHq4F(=-oT-nMJOczDyZ-~AgX8o2^Jq%a)ESoBJaCB+~K0S)*`eueR#kd7voqK|S zA?jy^Nqt@|4I2e!u%KqE? zI*NcC>(2Uh@>1?xShVt%je%#Zf0*2YHZ24-u3s@+(_bU;Phj}p+sDvwKuOEFFvP4h@X^atGG^?a_%zi5>V6Wcv^x= zS>i^}r%1y>5sYP**#75jTY<{Xh#NC#C3wetrP@@WY6FIYptOW>_^ce9&HTh!;n%G_ z<2tawpMxg#Fz<@(9$34(js&w^3D(i%mXii1KsjwcI$Fffo3N_tY4D$qplMEt7sYh9 z(r99dgI(VWWukPkit-nXpTenz=@=G6v}rAzCBx$gHGQ(8UKyGQgC01T{M-p4DC2gf z3}>*Vt8yR76v$F~gYyEPo~OKCQoG)67-su1!J82pwIzYk?r_Sjg^oroaY6^5_y@jm zhLsw##Y%nNICWtCktNDbxP#~+;c))T$SysQ6+_u5tP#5!XztdP;sRwFFVXiW3<8tC z+)ZH9pQ0F+g#4dVKjxJ0%K|O*97hz+6{6x1wz8;+vRFV|DxN8sBFoJ=!edvQ%H8lZ zDOflws_);$zh#h>cCT0ptWyOVQTzmdf?lKeaNV~f{3?YS!6hh@o0(->_rQPQ#C)-o zc8rF%hVG5Ne*M?A zS?kyBTKQ|YUWi|4?Zn#q+lpO*r?ZHQEc4s4>tx;jRrfA_=KlJpB<}t)^>x67?W6f)Nu`Bj0 z_+5IceZ|~KuQ>0r-}}4ZwZX0RvCr>Lsy`*Z{?*UMTl!gXg?4YQOsfg`dN|kVDeK+! z!FDchr-b;wu>0_iJ+}Q~-CL{o)BXgTel>l&`%CGn;Hx#I-K!q2uw5Qo{*!;J_sw4) zuI(>-dpG{ep3vXD$HYtRvchgZYumQ}WkuloYbNEnfu%BApKp1s_kUrTX0-ghU)R^| z{oOrpd)EGoKNg*He>>rN_{-f_cwc?GpQ-13-m&CQVDXCT|M|cP0GZhLS7lnyd6(W> z^KtGvX0F-!+4CaVukbqk{2&&2KJx3loIi^yXW#mNJM^sJ-QR9kYt8gD?svwOA1&X- zx1yZmZvOUPQmuiZz@5{4r{WhECj<8kKDOO^Kf2WW&#K?q(K5@vAGTX;1w4&qg3|w= z>$ZPm|Cz6L4wz1E3%-B3BjEj%^1Sr-%gbK=tOjn*2iBoCi^D#?7n{huf8|SH14rvv z?<;|y?{9;~>};Mtjrl(fIOO`sZm;~SyR&9}zT%hpXKSkbtvMU*`fuI8ePpL!3fonPTgSPs>#UCF1SGRrJlk2Ax!}yjMRL;1^Z#udB+5ANszYgr) rstU}bvXB1!Uj|&q<{Ef~txyhfR!}W)uDWZH241v6_E&vz&65uRGdV|_ literal 0 HcmV?d00001 diff --git a/samples/shallow_water_data/shallow_water.glsl b/samples/shallow_water_data/shallow_water.glsl index df8939dbb..c61c035c2 100644 --- a/samples/shallow_water_data/shallow_water.glsl +++ b/samples/shallow_water_data/shallow_water.glsl @@ -5,24 +5,42 @@ @ctype vec2 CF_V2 @block shader_block -uniform sampler2D water_tex; +uniform sampler2D wavelets_tex; uniform sampler2D noise_tex; +uniform sampler2D scene_tex; uniform shader_uniforms { - float amplitude; - float time; + float show_normals; float show_noise; }; +vec2 normal_from_heightmap(sampler2D tex, vec2 uv) +{ + float ha = textureOffset(tex, uv, ivec2(-1, 1)).r; + float hb = textureOffset(tex, uv, ivec2( 1, 1)).r; + float hc = textureOffset(tex, uv, ivec2( 0,-1)).r; + vec2 n = vec2(ha-hc, hb-hc); + return n; +} + +vec4 normal_to_color(vec2 n) +{ + return vec4(n * 0.5 + 0.5, 1.0, 1.0); +} + vec4 shader(vec4 color, vec2 pos, vec2 uv, vec4 params) { - vec2 noise_uv = uv; - noise_uv.x *= 640.0 / 128.0; - noise_uv.y *= 480.0 / 128.0; - vec4 noise_c = vec4(texture(noise_tex, noise_uv * 0.5 + time).r - 0.5); - vec2 offset = vec2(1.0/640.0, 1.0/480.0) * noise_c.r * amplitude; - vec4 c = texture(water_tex, uv + offset); - c = show_noise > 0 ? noise_c + 0.5 : c; + vec2 dim = vec2(1.0/160.0,1.0/120.0); + vec2 n = normal_from_heightmap(noise_tex, uv); + vec2 w = normal_from_heightmap(wavelets_tex, uv+n*dim*10.0); + vec4 c = mix(normal_to_color(n), normal_to_color(w), 0.25); + c = texture(scene_tex, uv+(n+w)*dim*10.0); + c = mix(c, vec4(1), length(n+w) > 0.2 ? 0.1 : 0.0); + + c = show_normals > 0.0 ? mix(normal_to_color(n), normal_to_color(w), 0.25) : c; + + c = show_noise > 0.0 ? texture(noise_tex, uv) : c; + return c; } @end diff --git a/samples/shallow_water_data/shallow_water_shader.h b/samples/shallow_water_data/shallow_water_shader.h index 9d487001a..dc4ed4d66 100644 --- a/samples/shallow_water_data/shallow_water_shader.h +++ b/samples/shallow_water_data/shallow_water_shader.h @@ -21,27 +21,32 @@ ATTR_shallow_water_vs_in_col = 6 ATTR_shallow_water_vs_in_radius = 7 ATTR_shallow_water_vs_in_stroke = 8 - ATTR_shallow_water_vs_in_params = 9 - ATTR_shallow_water_vs_in_user_params = 10 + ATTR_shallow_water_vs_in_aa = 9 + ATTR_shallow_water_vs_in_params = 10 + ATTR_shallow_water_vs_in_user_params = 11 Fragment shader: fs - Uniform block 'fs_params': - C struct: shallow_water_fs_params_t - Bind slot: SLOT_shallow_water_fs_params = 0 Uniform block 'shader_uniforms': C struct: shallow_water_shader_uniforms_t - Bind slot: SLOT_shallow_water_shader_uniforms = 1 + Bind slot: SLOT_shallow_water_shader_uniforms = 0 + Uniform block 'fs_params': + C struct: shallow_water_fs_params_t + Bind slot: SLOT_shallow_water_fs_params = 1 Image 'noise_tex': Type: SG_IMAGETYPE_2D Component Type: SG_SAMPLERTYPE_FLOAT Bind slot: SLOT_shallow_water_noise_tex = 0 - Image 'water_tex': + Image 'wavelets_tex': Type: SG_IMAGETYPE_2D Component Type: SG_SAMPLERTYPE_FLOAT - Bind slot: SLOT_shallow_water_water_tex = 1 + Bind slot: SLOT_shallow_water_wavelets_tex = 1 + Image 'scene_tex': + Type: SG_IMAGETYPE_2D + Component Type: SG_SAMPLERTYPE_FLOAT + Bind slot: SLOT_shallow_water_scene_tex = 2 Image 'u_image': Type: SG_IMAGETYPE_2D Component Type: SG_SAMPLERTYPE_FLOAT - Bind slot: SLOT_shallow_water_u_image = 2 + Bind slot: SLOT_shallow_water_u_image = 3 Shader descriptor structs: @@ -62,6 +67,7 @@ [ATTR_shallow_water_vs_in_col] = { ... }, [ATTR_shallow_water_vs_in_radius] = { ... }, [ATTR_shallow_water_vs_in_stroke] = { ... }, + [ATTR_shallow_water_vs_in_aa] = { ... }, [ATTR_shallow_water_vs_in_params] = { ... }, [ATTR_shallow_water_vs_in_user_params] = { ... }, }, @@ -71,27 +77,25 @@ Image bind slots, use as index in sg_bindings.vs_images[] or .fs_images[] SLOT_shallow_water_noise_tex = 0; - SLOT_shallow_water_water_tex = 1; - SLOT_shallow_water_u_image = 2; - - Bind slot and C-struct for uniform block 'fs_params': - - shallow_water_fs_params_t fs_params = { - .u_texture_size = ...; - .u_aaf = ...; - .u_aa_scale = ...; - }; - sg_apply_uniforms(SG_SHADERSTAGE_[VS|FS], SLOT_shallow_water_fs_params, &SG_RANGE(fs_params)); + SLOT_shallow_water_wavelets_tex = 1; + SLOT_shallow_water_scene_tex = 2; + SLOT_shallow_water_u_image = 3; Bind slot and C-struct for uniform block 'shader_uniforms': shallow_water_shader_uniforms_t shader_uniforms = { - .amplitude = ...; - .time = ...; + .show_normals = ...; .show_noise = ...; }; sg_apply_uniforms(SG_SHADERSTAGE_[VS|FS], SLOT_shallow_water_shader_uniforms, &SG_RANGE(shader_uniforms)); + Bind slot and C-struct for uniform block 'fs_params': + + shallow_water_fs_params_t fs_params = { + .u_texture_size = ...; + }; + sg_apply_uniforms(SG_SHADERSTAGE_[VS|FS], SLOT_shallow_water_fs_params, &SG_RANGE(fs_params)); + */ #include #include @@ -113,28 +117,28 @@ #define ATTR_shallow_water_vs_in_col (6) #define ATTR_shallow_water_vs_in_radius (7) #define ATTR_shallow_water_vs_in_stroke (8) -#define ATTR_shallow_water_vs_in_params (9) -#define ATTR_shallow_water_vs_in_user_params (10) +#define ATTR_shallow_water_vs_in_aa (9) +#define ATTR_shallow_water_vs_in_params (10) +#define ATTR_shallow_water_vs_in_user_params (11) #define SLOT_shallow_water_noise_tex (0) -#define SLOT_shallow_water_water_tex (1) -#define SLOT_shallow_water_u_image (2) -#define SLOT_shallow_water_fs_params (0) -#pragma pack(push,1) -SOKOL_SHDC_ALIGN(16) typedef struct shallow_water_fs_params_t { - CF_V2 u_texture_size; - float u_aaf; - float u_aa_scale; -} shallow_water_fs_params_t; -#pragma pack(pop) -#define SLOT_shallow_water_shader_uniforms (1) +#define SLOT_shallow_water_wavelets_tex (1) +#define SLOT_shallow_water_scene_tex (2) +#define SLOT_shallow_water_u_image (3) +#define SLOT_shallow_water_shader_uniforms (0) #pragma pack(push,1) SOKOL_SHDC_ALIGN(16) typedef struct shallow_water_shader_uniforms_t { - float amplitude; - float time; + float show_normals; float show_noise; - uint8_t _pad_12[4]; + uint8_t _pad_8[8]; } shallow_water_shader_uniforms_t; #pragma pack(pop) +#define SLOT_shallow_water_fs_params (1) +#pragma pack(push,1) +SOKOL_SHDC_ALIGN(16) typedef struct shallow_water_fs_params_t { + CF_V2 u_texture_size; + uint8_t _pad_8[8]; +} shallow_water_fs_params_t; +#pragma pack(pop) /* #version 330 @@ -154,15 +158,16 @@ SOKOL_SHDC_ALIGN(16) typedef struct shallow_water_shader_uniforms_t { layout(location = 7) in float in_radius; out float v_stroke; layout(location = 8) in float in_stroke; + out float v_aa; + layout(location = 9) in float in_aa; out float v_type; - layout(location = 9) in vec4 in_params; + layout(location = 10) in vec4 in_params; out float v_alpha; out float v_fill; - out float v_aa; layout(location = 1) in vec2 in_posH; out vec2 v_posH; out vec4 v_user; - layout(location = 10) in vec4 in_user_params; + layout(location = 11) in vec4 in_user_params; void main() { @@ -174,10 +179,10 @@ SOKOL_SHDC_ALIGN(16) typedef struct shallow_water_shader_uniforms_t { v_col = in_col; v_radius = in_radius; v_stroke = in_stroke; + v_aa = in_aa; v_type = in_params.x; v_alpha = in_params.y; v_fill = in_params.z; - v_aa = in_params.w; gl_Position = vec4(in_posH, 0.0, 1.0); v_posH = in_posH; v_user = in_user_params; @@ -185,7 +190,7 @@ SOKOL_SHDC_ALIGN(16) typedef struct shallow_water_shader_uniforms_t { } */ -static const char shallow_water_vs_source_glsl330[1079] = { +static const char shallow_water_vs_source_glsl330[1111] = { 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x33,0x30,0x0a,0x0a,0x6f,0x75, 0x74,0x20,0x76,0x65,0x63,0x32,0x20,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x6c,0x61, 0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20, @@ -214,37 +219,39 @@ static const char shallow_water_vs_source_glsl330[1079] = { 0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d, 0x20,0x38,0x29,0x20,0x69,0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x69,0x6e,0x5f, 0x73,0x74,0x72,0x6f,0x6b,0x65,0x3b,0x0a,0x6f,0x75,0x74,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74, - 0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x39,0x29,0x20,0x69, - 0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73, - 0x3b,0x0a,0x6f,0x75,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x61,0x6c, - 0x70,0x68,0x61,0x3b,0x0a,0x6f,0x75,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76, - 0x5f,0x66,0x69,0x6c,0x6c,0x3b,0x0a,0x6f,0x75,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x76,0x5f,0x61,0x61,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f, - 0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x31,0x29,0x20,0x69,0x6e,0x20,0x76, - 0x65,0x63,0x32,0x20,0x69,0x6e,0x5f,0x70,0x6f,0x73,0x48,0x3b,0x0a,0x6f,0x75,0x74, - 0x20,0x76,0x65,0x63,0x32,0x20,0x76,0x5f,0x70,0x6f,0x73,0x48,0x3b,0x0a,0x6f,0x75, - 0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x76,0x5f,0x75,0x73,0x65,0x72,0x3b,0x0a,0x6c, + 0x74,0x20,0x76,0x5f,0x61,0x61,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c, + 0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x39,0x29,0x20,0x69,0x6e,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x69,0x6e,0x5f,0x61,0x61,0x3b,0x0a,0x6f,0x75,0x74, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x3b,0x0a,0x6c, 0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d, 0x20,0x31,0x30,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x69,0x6e,0x5f, - 0x75,0x73,0x65,0x72,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x3b,0x0a,0x0a,0x76,0x6f, - 0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x76,0x5f,0x70,0x6f,0x73,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x70,0x6f,0x73,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x76,0x5f,0x61,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x61,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x76,0x5f,0x62,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x62,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x76,0x5f,0x63,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x63,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x76,0x5f,0x75,0x76,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x75,0x76, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x20,0x3d,0x20,0x69,0x6e, - 0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x72,0x61,0x64,0x69, - 0x75,0x73,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x20,0x3d,0x20,0x69, - 0x6e,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f, - 0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73, - 0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x20, - 0x3d,0x20,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x79,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x70, - 0x61,0x72,0x61,0x6d,0x73,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x61, - 0x61,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x77,0x3b, + 0x70,0x61,0x72,0x61,0x6d,0x73,0x3b,0x0a,0x6f,0x75,0x74,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x3b,0x0a,0x6f,0x75,0x74,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x3b,0x0a,0x6c,0x61,0x79, + 0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x31, + 0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x32,0x20,0x69,0x6e,0x5f,0x70,0x6f,0x73, + 0x48,0x3b,0x0a,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x32,0x20,0x76,0x5f,0x70,0x6f, + 0x73,0x48,0x3b,0x0a,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x76,0x5f,0x75, + 0x73,0x65,0x72,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61, + 0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x31,0x31,0x29,0x20,0x69,0x6e,0x20,0x76,0x65, + 0x63,0x34,0x20,0x69,0x6e,0x5f,0x75,0x73,0x65,0x72,0x5f,0x70,0x61,0x72,0x61,0x6d, + 0x73,0x3b,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x70,0x6f,0x73,0x20,0x3d,0x20,0x69,0x6e, + 0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x61,0x20,0x3d,0x20, + 0x69,0x6e,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x62,0x20,0x3d,0x20, + 0x69,0x6e,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x63,0x20,0x3d,0x20, + 0x69,0x6e,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x75,0x76,0x20,0x3d, + 0x20,0x69,0x6e,0x5f,0x75,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x63,0x6f, + 0x6c,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x76,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x72,0x61, + 0x64,0x69,0x75,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x73,0x74,0x72,0x6f, + 0x6b,0x65,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x76,0x5f,0x61,0x61,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x61,0x61, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x69, + 0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x70,0x61,0x72, + 0x61,0x6d,0x73,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x66,0x69,0x6c, + 0x6c,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x7a,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e, 0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x69,0x6e,0x5f,0x70,0x6f,0x73,0x48,0x2c, 0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, @@ -258,10 +265,11 @@ static const char shallow_water_vs_source_glsl330[1079] = { /* #version 330 - uniform vec4 fs_params[1]; uniform vec4 shader_uniforms[1]; + uniform vec4 fs_params[1]; uniform sampler2D noise_tex; - uniform sampler2D water_tex; + uniform sampler2D wavelets_tex; + uniform sampler2D scene_tex; uniform sampler2D u_image; in float v_stroke; @@ -282,8 +290,8 @@ static const char shallow_water_vs_source_glsl330[1079] = { vec2 smooth_uv(vec2 uv, vec2 texture_size) { - vec2 _204 = floor(uv * texture_size + vec2(0.5)); - return (_204 + clamp((uv * texture_size + (-_204)) / fwidth(uv * texture_size), vec2(-0.5), vec2(0.5))) / texture_size; + vec2 _216 = floor(uv * texture_size + vec2(0.5)); + return (_216 + clamp((uv * texture_size + (-_216)) / fwidth(uv * texture_size), vec2(-0.5), vec2(0.5))) / texture_size; } vec4 de_gamma(vec4 c) @@ -293,16 +301,16 @@ static const char shallow_water_vs_source_glsl330[1079] = { float overlay(float base, float blend) { - float _104; + float _116; if (base <= 0.5) { - _104 = (2.0 * base) * blend; + _116 = (2.0 * base) * blend; } else { - _104 = ((1.0 - base) * (-2.0)) * (1.0 - blend) + 1.0; + _116 = ((1.0 - base) * (-2.0)) * (1.0 - blend) + 1.0; } - return _104; + return _116; } vec3 overlay(vec3 base, vec3 blend) @@ -335,8 +343,8 @@ static const char shallow_water_vs_source_glsl330[1079] = { float distance_aabb(vec2 p, vec2 he) { - vec2 _357 = abs(p) - he; - return length(max(_357, vec2(0.0))) + min(max(_357.x, _357.y), 0.0); + vec2 _360 = abs(p) - he; + return length(max(_360, vec2(0.0))) + min(max(_360.x, _360.y), 0.0); } float distance_box(inout vec2 p, vec2 c, vec2 he, vec2 u) @@ -351,40 +359,40 @@ static const char shallow_water_vs_source_glsl330[1079] = { float safe_div(float a, float b) { - float _225; + float _237; if (b == 0.0) { - _225 = 0.0; + _237 = 0.0; } else { - _225 = a / b; + _237 = a / b; } - return _225; + return _237; } float safe_len(vec2 v) { - float _238 = dot(v, v); - float _241; - if (_238 == 0.0) + float _250 = dot(v, v); + float _253; + if (_250 == 0.0) { - _241 = 0.0; + _253 = 0.0; } else { - _241 = sqrt(_238); + _253 = sqrt(_250); } - return _241; + return _253; } float distance_segment(vec2 p, vec2 a, vec2 b) { - vec2 _402 = b - a; - vec2 _406 = p - a; - float param = dot(_406, _402); - float param_1 = dot(_402, _402); - vec2 param_2 = _406 - (_402 * clamp(safe_div(param, param_1), 0.0, 1.0)); + vec2 _405 = b - a; + vec2 _409 = p - a; + float param = dot(_409, _405); + float param_1 = dot(_405, _405); + vec2 param_2 = _409 - (_405 * clamp(safe_div(param, param_1), 0.0, 1.0)); return safe_len(param_2); } @@ -395,32 +403,32 @@ static const char shallow_water_vs_source_glsl330[1079] = { float distance_triangle(vec2 p, vec2 a, vec2 b, vec2 c) { - vec2 _432 = b - a; - vec2 _436 = c - b; - vec2 _440 = a - c; - vec2 _444 = p - a; - vec2 _448 = p - b; - vec2 _452 = p - c; - float param = dot(_444, _432); - float param_1 = dot(_432, _432); - vec2 _467 = _444 - (_432 * clamp(safe_div(param, param_1), 0.0, 1.0)); - float param_2 = dot(_448, _436); - float param_3 = dot(_436, _436); - vec2 _482 = _448 - (_436 * clamp(safe_div(param_2, param_3), 0.0, 1.0)); - float param_4 = dot(_452, _440); - float param_5 = dot(_440, _440); - vec2 _497 = _452 - (_440 * clamp(safe_div(param_4, param_5), 0.0, 1.0)); - vec2 param_6 = _432; - vec2 param_7 = _440; - float _503 = det2(param_6, param_7); - vec2 param_8 = _444; - vec2 param_9 = _432; - vec2 param_10 = _448; - vec2 param_11 = _436; - vec2 param_12 = _452; - vec2 param_13 = _440; - vec2 _539 = min(min(vec2(dot(_467, _467), _503 * det2(param_8, param_9)), vec2(dot(_482, _482), _503 * det2(param_10, param_11))), vec2(dot(_497, _497), _503 * det2(param_12, param_13))); - return (-sqrt(_539.x)) * sign(_539.y); + vec2 _435 = b - a; + vec2 _439 = c - b; + vec2 _443 = a - c; + vec2 _447 = p - a; + vec2 _451 = p - b; + vec2 _455 = p - c; + float param = dot(_447, _435); + float param_1 = dot(_435, _435); + vec2 _470 = _447 - (_435 * clamp(safe_div(param, param_1), 0.0, 1.0)); + float param_2 = dot(_451, _439); + float param_3 = dot(_439, _439); + vec2 _485 = _451 - (_439 * clamp(safe_div(param_2, param_3), 0.0, 1.0)); + float param_4 = dot(_455, _443); + float param_5 = dot(_443, _443); + vec2 _500 = _455 - (_443 * clamp(safe_div(param_4, param_5), 0.0, 1.0)); + vec2 param_6 = _435; + vec2 param_7 = _443; + float _506 = det2(param_6, param_7); + vec2 param_8 = _447; + vec2 param_9 = _435; + vec2 param_10 = _451; + vec2 param_11 = _439; + vec2 param_12 = _455; + vec2 param_13 = _443; + vec2 _542 = min(min(vec2(dot(_470, _470), _506 * det2(param_8, param_9)), vec2(dot(_485, _485), _506 * det2(param_10, param_11))), vec2(dot(_500, _500), _506 * det2(param_12, param_13))); + return (-sqrt(_542.x)) * sign(_542.y); } float sdf_stroke(float d) @@ -430,161 +438,188 @@ static const char shallow_water_vs_source_glsl330[1079] = { vec4 sdf(vec4 a, vec4 b, float d) { - float _291 = fs_params[0].z * fs_params[0].w; float param = d; - float _295 = sdf_stroke(param); - bvec4 _310 = bvec4(_295 <= 0.0); + vec4 _303 = mix(b, a, vec4(smoothstep(0.0, v_aa, sdf_stroke(param)))); bvec4 _327 = bvec4(clamp(d, -1.0, 1.0) <= 0.0); - vec4 _334 = vec4(v_aa); - result = mix(mix(vec4(_310.x ? b.x : a.x, _310.y ? b.y : a.y, _310.z ? b.z : a.z, _310.w ? b.w : a.w), mix(b, a, vec4(smoothstep(0.0, _291, _295))), _334), mix(vec4(_327.x ? b.x : a.x, _327.y ? b.y : a.y, _327.z ? b.z : a.z, _327.w ? b.w : a.w), mix(b, a, vec4(smoothstep(0.0, _291, d))), _334), vec4(v_fill)); + vec4 _335 = vec4(float(v_aa > 0.0)); + result = mix(mix(_303, _303, _335), mix(vec4(_327.x ? b.x : a.x, _327.y ? b.y : a.y, _327.z ? b.z : a.z, _327.w ? b.w : a.w), mix(b, a, vec4(smoothstep(0.0, v_aa, d))), _335), vec4(v_fill)); return result; } + vec2 normal_from_heightmap(sampler2D tex, vec2 uv) + { + vec4 _574 = textureOffset(tex, uv, ivec2(0, -1)); + float _575 = _574.x; + return vec2(textureOffset(tex, uv, ivec2(-1, 1)).x - _575, textureOffset(tex, uv, ivec2(1)).x - _575); + } + + vec4 normal_to_color(vec2 n) + { + return vec4((n * 0.5) + vec2(0.5), 1.0, 1.0); + } + vec4 shader(vec4 color, vec2 pos, vec2 uv, vec4 params) { - vec4 _577 = texture(noise_tex, (vec2(uv.x * 5.0, uv.y * 3.75) * 0.5) + vec2(shader_uniforms[0].y)); - float _579 = _577.x - 0.5; - vec4 c = texture(water_tex, uv + ((vec2(0.001562500023283064365386962890625, 0.00208333344198763370513916015625) * _579) * shader_uniforms[0].x)); - vec4 _602; - if (shader_uniforms[0].z > 0.0) + vec2 param = uv; + vec2 _604 = normal_from_heightmap(noise_tex, param); + vec2 param_1 = uv + ((_604 * vec2(0.0062500000931322574615478515625, 0.008333333767950534820556640625)) * 10.0); + vec2 _615 = normal_from_heightmap(wavelets_tex, param_1); + vec2 param_2 = _604; + vec2 param_3 = _615; + vec2 _631 = _604 + _615; + vec4 c = mix(texture(scene_tex, uv + ((_631 * vec2(0.0062500000931322574615478515625, 0.008333333767950534820556640625)) * 10.0)), vec4(1.0), vec4((length(_631) > 0.20000000298023223876953125) ? 0.100000001490116119384765625 : 0.0)); + vec4 _656; + if (shader_uniforms[0].x > 0.0) + { + vec2 param_4 = _604; + vec2 param_5 = _615; + _656 = mix(normal_to_color(param_4), normal_to_color(param_5), vec4(0.25)); + } + else + { + _656 = c; + } + c = _656; + vec4 _673; + if (shader_uniforms[0].y > 0.0) { - _602 = vec4(_579) + vec4(0.5); + _673 = texture(noise_tex, uv); } else { - _602 = c; + _673 = c; } - c = _602; - return _602; + c = _673; + return _673; } void main() { - bool _618 = v_type >= 0.0; - bool _624; - if (_618) + bool _689 = v_type >= 0.0; + bool _695; + if (_689) { - _624 = v_type < 0.00196078442968428134918212890625; + _695 = v_type < 0.00196078442968428134918212890625; } else { - _624 = _618; + _695 = _689; } - bool _627 = v_type > 0.00196078442968428134918212890625; - bool _633; - if (_627) + bool _698 = v_type > 0.00196078442968428134918212890625; + bool _704; + if (_698) { - _633 = v_type < 0.0058823530562222003936767578125; + _704 = v_type < 0.0058823530562222003936767578125; } else { - _633 = _627; + _704 = _698; } - bool _636 = v_type > 0.0058823530562222003936767578125; - bool _642; - if (_636) + bool _707 = v_type > 0.0058823530562222003936767578125; + bool _713; + if (_707) { - _642 = v_type < 0.009803921915590763092041015625; + _713 = v_type < 0.009803921915590763092041015625; } else { - _642 = _636; + _713 = _707; } - bool _645 = v_type > 0.009803921915590763092041015625; - bool _651; - if (_645) + bool _716 = v_type > 0.009803921915590763092041015625; + bool _722; + if (_716) { - _651 = v_type < 0.013725490309298038482666015625; + _722 = v_type < 0.013725490309298038482666015625; } else { - _651 = _645; + _722 = _716; } - bool _654 = v_type > 0.013725490309298038482666015625; - bool _660; - if (_654) + bool _725 = v_type > 0.013725490309298038482666015625; + bool _731; + if (_725) { - _660 = v_type < 0.01764705963432788848876953125; + _731 = v_type < 0.01764705963432788848876953125; } else { - _660 = _654; + _731 = _725; } - bool _663 = v_type > 0.01764705963432788848876953125; - bool _669; - if (_663) + bool _734 = v_type > 0.01764705963432788848876953125; + bool _740; + if (_734) { - _669 = v_type < 0.02156862802803516387939453125; + _740 = v_type < 0.02156862802803516387939453125; } else { - _669 = _663; + _740 = _734; } vec4 c = vec4(0.0); - vec4 _676; - if (!(_624 && _633)) + vec4 _747; + if (!(_695 && _704)) { vec2 param = v_uv; vec2 param_1 = fs_params[0].xy; vec4 param_2 = texture(u_image, smooth_uv(param, param_1)); - _676 = de_gamma(param_2); + _747 = de_gamma(param_2); } else { - _676 = c; + _747 = c; } - c = _676; - vec4 _697; - if (_624) + c = _747; + vec4 _771; + if (_695) { vec4 param_3 = c; vec4 param_4 = v_col; vec4 param_5 = overlay(param_3, param_4); - _697 = gamma(param_5); + _771 = gamma(param_5); } else { - _697 = c; + _771 = c; } - c = _697; - vec4 _713; - if (_633) + c = _771; + vec4 _787; + if (_704) { - _713 = v_col * c.w; + _787 = v_col * c.w; } else { - _713 = c; + _787 = c; } - bvec4 _726 = bvec4(_660); - c = vec4(_726.x ? v_col.x : _713.x, _726.y ? v_col.y : _713.y, _726.z ? v_col.z : _713.z, _726.w ? v_col.w : _713.w); + bvec4 _800 = bvec4(_731); + c = vec4(_800.x ? v_col.x : _787.x, _800.y ? v_col.y : _787.y, _800.z ? v_col.z : _787.z, _800.w ? v_col.w : _787.w); float d = 0.0; - if (_642) + if (_713) { vec2 param_6 = v_pos; vec2 param_7 = v_a; vec2 param_8 = v_b; vec2 param_9 = v_c; - float _744 = distance_box(param_6, param_7, param_8, param_9); - d = _744; + float _818 = distance_box(param_6, param_7, param_8, param_9); + d = _818; } else { - if (_651) + if (_722) { vec2 param_10 = v_pos; vec2 param_11 = v_a; vec2 param_12 = v_b; - float _755 = distance_segment(param_10, param_11, param_12); - d = _755; + float _829 = distance_segment(param_10, param_11, param_12); + d = _829; vec2 param_13 = v_pos; vec2 param_14 = v_b; vec2 param_15 = v_c; - d = min(_755, distance_segment(param_13, param_14, param_15)); + d = min(_829, distance_segment(param_13, param_14, param_15)); } else { - if (_669) + if (_740) { vec2 param_16 = v_pos; vec2 param_17 = v_a; @@ -594,28 +629,28 @@ static const char shallow_water_vs_source_glsl330[1079] = { } } } - vec4 _786; - if (((!_624) && (!_633)) && (!_660)) + vec4 _860; + if (((!_695) && (!_704)) && (!_731)) { vec4 param_20 = c; vec4 param_21 = v_col; float param_22 = d - v_radius; - vec4 _798 = sdf(param_20, param_21, param_22); - _786 = _798; + vec4 _872 = sdf(param_20, param_21, param_22); + _860 = _872; } else { - _786 = c; + _860 = c; } - vec4 _805 = _786 * v_alpha; - c = _805; - vec4 param_23 = _805; + vec4 _879 = _860 * v_alpha; + c = _879; + vec4 param_23 = _879; vec2 param_24 = v_pos; - vec2 param_25 = (v_posH + vec2(1.0)) * 0.5; + vec2 param_25 = ((v_posH + vec2(1.0)) * 0.5) * vec2(1.0, -1.0); vec4 param_26 = v_user; - vec4 _821 = shader(param_23, param_24, param_25, param_26); - c = _821; - if (_821.w == 0.0) + vec4 _897 = shader(param_23, param_24, param_25, param_26); + c = _897; + if (_897.w == 0.0) { discard; } @@ -623,15 +658,17 @@ static const char shallow_water_vs_source_glsl330[1079] = { } */ -static const char shallow_water_fs_source_glsl330[8531] = { +static const char shallow_water_fs_source_glsl330[9300] = { 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x33,0x30,0x0a,0x0a,0x75,0x6e, - 0x69,0x66,0x6f,0x72,0x6d,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x73,0x5f,0x70,0x61, - 0x72,0x61,0x6d,0x73,0x5b,0x31,0x5d,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d, - 0x20,0x76,0x65,0x63,0x34,0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x5f,0x75,0x6e,0x69, - 0x66,0x6f,0x72,0x6d,0x73,0x5b,0x31,0x5d,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72, + 0x69,0x66,0x6f,0x72,0x6d,0x20,0x76,0x65,0x63,0x34,0x20,0x73,0x68,0x61,0x64,0x65, + 0x72,0x5f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x5b,0x31,0x5d,0x3b,0x0a,0x75, + 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x73,0x5f,0x70, + 0x61,0x72,0x61,0x6d,0x73,0x5b,0x31,0x5d,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72, 0x6d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x6e,0x6f,0x69,0x73, 0x65,0x5f,0x74,0x65,0x78,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x73, - 0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x77,0x61,0x74,0x65,0x72,0x5f,0x74, + 0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x77,0x61,0x76,0x65,0x6c,0x65,0x74, + 0x73,0x5f,0x74,0x65,0x78,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x73, + 0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x73,0x63,0x65,0x6e,0x65,0x5f,0x74, 0x65,0x78,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x73,0x61,0x6d,0x70, 0x6c,0x65,0x72,0x32,0x44,0x20,0x75,0x5f,0x69,0x6d,0x61,0x67,0x65,0x3b,0x0a,0x0a, 0x69,0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b, @@ -653,13 +690,13 @@ static const char shallow_water_fs_source_glsl330[8531] = { 0x3b,0x0a,0x0a,0x76,0x65,0x63,0x32,0x20,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x5f,0x75, 0x76,0x28,0x76,0x65,0x63,0x32,0x20,0x75,0x76,0x2c,0x20,0x76,0x65,0x63,0x32,0x20, 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x29,0x0a,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x32,0x30,0x34,0x20,0x3d,0x20, + 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x32,0x31,0x36,0x20,0x3d,0x20, 0x66,0x6c,0x6f,0x6f,0x72,0x28,0x75,0x76,0x20,0x2a,0x20,0x74,0x65,0x78,0x74,0x75, 0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28,0x30, 0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, - 0x20,0x28,0x5f,0x32,0x30,0x34,0x20,0x2b,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28, + 0x20,0x28,0x5f,0x32,0x31,0x36,0x20,0x2b,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28, 0x75,0x76,0x20,0x2a,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a, - 0x65,0x20,0x2b,0x20,0x28,0x2d,0x5f,0x32,0x30,0x34,0x29,0x29,0x20,0x2f,0x20,0x66, + 0x65,0x20,0x2b,0x20,0x28,0x2d,0x5f,0x32,0x31,0x36,0x29,0x29,0x20,0x2f,0x20,0x66, 0x77,0x69,0x64,0x74,0x68,0x28,0x75,0x76,0x20,0x2a,0x20,0x74,0x65,0x78,0x74,0x75, 0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x29,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x2d, 0x30,0x2e,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35,0x29,0x29, @@ -673,18 +710,18 @@ static const char shallow_water_fs_source_glsl330[8531] = { 0x77,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6f,0x76,0x65, 0x72,0x6c,0x61,0x79,0x28,0x66,0x6c,0x6f,0x61,0x74,0x20,0x62,0x61,0x73,0x65,0x2c, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x62,0x6c,0x65,0x6e,0x64,0x29,0x0a,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x30,0x34,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x31,0x36,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x61,0x73,0x65,0x20,0x3c,0x3d,0x20, 0x30,0x2e,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x5f,0x31,0x30,0x34,0x20,0x3d,0x20,0x28,0x32,0x2e,0x30,0x20,0x2a, + 0x20,0x20,0x20,0x5f,0x31,0x31,0x36,0x20,0x3d,0x20,0x28,0x32,0x2e,0x30,0x20,0x2a, 0x20,0x62,0x61,0x73,0x65,0x29,0x20,0x2a,0x20,0x62,0x6c,0x65,0x6e,0x64,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x30, - 0x34,0x20,0x3d,0x20,0x28,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x62,0x61,0x73,0x65, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31, + 0x36,0x20,0x3d,0x20,0x28,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x62,0x61,0x73,0x65, 0x29,0x20,0x2a,0x20,0x28,0x2d,0x32,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x28,0x31, 0x2e,0x30,0x20,0x2d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x29,0x20,0x2b,0x20,0x31,0x2e, 0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, - 0x75,0x72,0x6e,0x20,0x5f,0x31,0x30,0x34,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63, + 0x75,0x72,0x6e,0x20,0x5f,0x31,0x31,0x36,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63, 0x33,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x76,0x65,0x63,0x33,0x20,0x62, 0x61,0x73,0x65,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x62,0x6c,0x65,0x6e,0x64,0x29, 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, @@ -725,12 +762,12 @@ static const char shallow_water_fs_source_glsl330[8531] = { 0x2e,0x78,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x69, 0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x61,0x61,0x62,0x62,0x28,0x76,0x65,0x63,0x32, 0x20,0x70,0x2c,0x20,0x76,0x65,0x63,0x32,0x20,0x68,0x65,0x29,0x0a,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x33,0x35,0x37,0x20,0x3d,0x20,0x61, + 0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x33,0x36,0x30,0x20,0x3d,0x20,0x61, 0x62,0x73,0x28,0x70,0x29,0x20,0x2d,0x20,0x68,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x6d,0x61, - 0x78,0x28,0x5f,0x33,0x35,0x37,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x30, + 0x78,0x28,0x5f,0x33,0x36,0x30,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x30, 0x29,0x29,0x29,0x20,0x2b,0x20,0x6d,0x69,0x6e,0x28,0x6d,0x61,0x78,0x28,0x5f,0x33, - 0x35,0x37,0x2e,0x78,0x2c,0x20,0x5f,0x33,0x35,0x37,0x2e,0x79,0x29,0x2c,0x20,0x30, + 0x36,0x30,0x2e,0x78,0x2c,0x20,0x5f,0x33,0x36,0x30,0x2e,0x79,0x29,0x2c,0x20,0x30, 0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x69, 0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x62,0x6f,0x78,0x28,0x69,0x6e,0x6f,0x75,0x74, 0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x2c,0x20,0x76,0x65,0x63,0x32,0x20,0x63,0x2c, @@ -748,39 +785,39 @@ static const char shallow_water_fs_source_glsl330[8531] = { 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f, 0x61,0x74,0x20,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x66,0x6c,0x6f,0x61, 0x74,0x20,0x61,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x62,0x29,0x0a,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x32,0x35,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x33,0x37,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x20,0x3d,0x3d,0x20,0x30,0x2e,0x30, 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x5f,0x32,0x32,0x35,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x5f,0x32,0x33,0x37,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x32,0x35,0x20,0x3d,0x20, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x33,0x37,0x20,0x3d,0x20, 0x61,0x20,0x2f,0x20,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x32,0x32,0x35,0x3b,0x0a,0x7d,0x0a, + 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x32,0x33,0x37,0x3b,0x0a,0x7d,0x0a, 0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x61,0x66,0x65,0x5f,0x6c,0x65,0x6e,0x28, 0x76,0x65,0x63,0x32,0x20,0x76,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x32,0x33,0x38,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x76, + 0x6f,0x61,0x74,0x20,0x5f,0x32,0x35,0x30,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x76, 0x2c,0x20,0x76,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x5f,0x32,0x34,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x32, - 0x33,0x38,0x20,0x3d,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x34,0x31,0x20,0x3d,0x20, + 0x5f,0x32,0x35,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x32, + 0x35,0x30,0x20,0x3d,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x35,0x33,0x20,0x3d,0x20, 0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x5f,0x32,0x34,0x31,0x20,0x3d,0x20,0x73,0x71,0x72,0x74,0x28,0x5f,0x32, - 0x33,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72, - 0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x32,0x34,0x31,0x3b,0x0a,0x7d,0x0a,0x0a,0x66, + 0x20,0x20,0x5f,0x32,0x35,0x33,0x20,0x3d,0x20,0x73,0x71,0x72,0x74,0x28,0x5f,0x32, + 0x35,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72, + 0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x32,0x35,0x33,0x3b,0x0a,0x7d,0x0a,0x0a,0x66, 0x6c,0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x73,0x65, 0x67,0x6d,0x65,0x6e,0x74,0x28,0x76,0x65,0x63,0x32,0x20,0x70,0x2c,0x20,0x76,0x65, 0x63,0x32,0x20,0x61,0x2c,0x20,0x76,0x65,0x63,0x32,0x20,0x62,0x29,0x0a,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x34,0x30,0x32,0x20,0x3d,0x20, + 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x34,0x30,0x35,0x20,0x3d,0x20, 0x62,0x20,0x2d,0x20,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20, - 0x5f,0x34,0x30,0x36,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x61,0x3b,0x0a,0x20,0x20, + 0x5f,0x34,0x30,0x39,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x61,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20, - 0x64,0x6f,0x74,0x28,0x5f,0x34,0x30,0x36,0x2c,0x20,0x5f,0x34,0x30,0x32,0x29,0x3b, + 0x64,0x6f,0x74,0x28,0x5f,0x34,0x30,0x39,0x2c,0x20,0x5f,0x34,0x30,0x35,0x29,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x30,0x32,0x2c,0x20,0x5f, - 0x34,0x30,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x34,0x30,0x36,0x20,0x2d,0x20, - 0x28,0x5f,0x34,0x30,0x32,0x20,0x2a,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61, + 0x5f,0x31,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x30,0x35,0x2c,0x20,0x5f, + 0x34,0x30,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x34,0x30,0x39,0x20,0x2d,0x20, + 0x28,0x5f,0x34,0x30,0x35,0x20,0x2a,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61, 0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30, 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73, @@ -794,370 +831,416 @@ static const char shallow_water_fs_source_glsl330[8531] = { 0x67,0x6c,0x65,0x28,0x76,0x65,0x63,0x32,0x20,0x70,0x2c,0x20,0x76,0x65,0x63,0x32, 0x20,0x61,0x2c,0x20,0x76,0x65,0x63,0x32,0x20,0x62,0x2c,0x20,0x76,0x65,0x63,0x32, 0x20,0x63,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f, - 0x34,0x33,0x32,0x20,0x3d,0x20,0x62,0x20,0x2d,0x20,0x61,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x34,0x33,0x36,0x20,0x3d,0x20,0x63,0x20,0x2d, + 0x34,0x33,0x35,0x20,0x3d,0x20,0x62,0x20,0x2d,0x20,0x61,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x34,0x33,0x39,0x20,0x3d,0x20,0x63,0x20,0x2d, 0x20,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x34,0x34, - 0x30,0x20,0x3d,0x20,0x61,0x20,0x2d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, - 0x65,0x63,0x32,0x20,0x5f,0x34,0x34,0x34,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x61, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x34,0x34,0x38,0x20, + 0x33,0x20,0x3d,0x20,0x61,0x20,0x2d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, + 0x65,0x63,0x32,0x20,0x5f,0x34,0x34,0x37,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x61, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x34,0x35,0x31,0x20, 0x3d,0x20,0x70,0x20,0x2d,0x20,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, - 0x32,0x20,0x5f,0x34,0x35,0x32,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x63,0x3b,0x0a, + 0x32,0x20,0x5f,0x34,0x35,0x35,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x63,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20, - 0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x34,0x34,0x2c,0x20,0x5f,0x34,0x33,0x32, + 0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x34,0x37,0x2c,0x20,0x5f,0x34,0x33,0x35, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x33,0x32,0x2c, - 0x20,0x5f,0x34,0x33,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32, - 0x20,0x5f,0x34,0x36,0x37,0x20,0x3d,0x20,0x5f,0x34,0x34,0x34,0x20,0x2d,0x20,0x28, - 0x5f,0x34,0x33,0x32,0x20,0x2a,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x66, + 0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x33,0x35,0x2c, + 0x20,0x5f,0x34,0x33,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32, + 0x20,0x5f,0x34,0x37,0x30,0x20,0x3d,0x20,0x5f,0x34,0x34,0x37,0x20,0x2d,0x20,0x28, + 0x5f,0x34,0x33,0x35,0x20,0x2a,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x66, 0x65,0x5f,0x64,0x69,0x76,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x34,0x38,0x2c, - 0x20,0x5f,0x34,0x33,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x35,0x31,0x2c, + 0x20,0x5f,0x34,0x33,0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28, - 0x5f,0x34,0x33,0x36,0x2c,0x20,0x5f,0x34,0x33,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x34,0x38,0x32,0x20,0x3d,0x20,0x5f,0x34,0x34, - 0x38,0x20,0x2d,0x20,0x28,0x5f,0x34,0x33,0x36,0x20,0x2a,0x20,0x63,0x6c,0x61,0x6d, + 0x5f,0x34,0x33,0x39,0x2c,0x20,0x5f,0x34,0x33,0x39,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x34,0x38,0x35,0x20,0x3d,0x20,0x5f,0x34,0x35, + 0x31,0x20,0x2d,0x20,0x28,0x5f,0x34,0x33,0x39,0x20,0x2a,0x20,0x63,0x6c,0x61,0x6d, 0x70,0x28,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x2c,0x20,0x30,0x2e, 0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x64,0x6f, - 0x74,0x28,0x5f,0x34,0x35,0x32,0x2c,0x20,0x5f,0x34,0x34,0x30,0x29,0x3b,0x0a,0x20, + 0x74,0x28,0x5f,0x34,0x35,0x35,0x2c,0x20,0x5f,0x34,0x34,0x33,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35, - 0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x34,0x30,0x2c,0x20,0x5f,0x34,0x34, - 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x34,0x39, - 0x37,0x20,0x3d,0x20,0x5f,0x34,0x35,0x32,0x20,0x2d,0x20,0x28,0x5f,0x34,0x34,0x30, + 0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x34,0x33,0x2c,0x20,0x5f,0x34,0x34, + 0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x35,0x30, + 0x30,0x20,0x3d,0x20,0x5f,0x34,0x35,0x35,0x20,0x2d,0x20,0x28,0x5f,0x34,0x34,0x33, 0x20,0x2a,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x66,0x65,0x5f,0x64,0x69, 0x76,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x35,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x36,0x20,0x3d,0x20,0x5f,0x34,0x33,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65, + 0x36,0x20,0x3d,0x20,0x5f,0x34,0x33,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65, 0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x34,0x34, - 0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x35,0x30, - 0x33,0x20,0x3d,0x20,0x64,0x65,0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36, + 0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x35,0x30, + 0x36,0x20,0x3d,0x20,0x64,0x65,0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36, 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f, - 0x34,0x34,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x5f,0x34,0x33,0x32,0x3b,0x0a,0x20,0x20, + 0x34,0x34,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x5f,0x34,0x33,0x35,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20, - 0x3d,0x20,0x5f,0x34,0x34,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x5f,0x34,0x33,0x36, + 0x3d,0x20,0x5f,0x34,0x35,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x5f,0x34,0x33,0x39, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x32,0x20,0x3d,0x20,0x5f,0x34,0x35,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x5f,0x31,0x32,0x20,0x3d,0x20,0x5f,0x34,0x35,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20, - 0x5f,0x34,0x34,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f, - 0x35,0x33,0x39,0x20,0x3d,0x20,0x6d,0x69,0x6e,0x28,0x6d,0x69,0x6e,0x28,0x76,0x65, - 0x63,0x32,0x28,0x64,0x6f,0x74,0x28,0x5f,0x34,0x36,0x37,0x2c,0x20,0x5f,0x34,0x36, - 0x37,0x29,0x2c,0x20,0x5f,0x35,0x30,0x33,0x20,0x2a,0x20,0x64,0x65,0x74,0x32,0x28, + 0x5f,0x34,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f, + 0x35,0x34,0x32,0x20,0x3d,0x20,0x6d,0x69,0x6e,0x28,0x6d,0x69,0x6e,0x28,0x76,0x65, + 0x63,0x32,0x28,0x64,0x6f,0x74,0x28,0x5f,0x34,0x37,0x30,0x2c,0x20,0x5f,0x34,0x37, + 0x30,0x29,0x2c,0x20,0x5f,0x35,0x30,0x36,0x20,0x2a,0x20,0x64,0x65,0x74,0x32,0x28, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39, 0x29,0x29,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x64,0x6f,0x74,0x28,0x5f,0x34,0x38, - 0x32,0x2c,0x20,0x5f,0x34,0x38,0x32,0x29,0x2c,0x20,0x5f,0x35,0x30,0x33,0x20,0x2a, + 0x35,0x2c,0x20,0x5f,0x34,0x38,0x35,0x29,0x2c,0x20,0x5f,0x35,0x30,0x36,0x20,0x2a, 0x20,0x64,0x65,0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x2c,0x20, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x29,0x29,0x29,0x2c,0x20,0x76,0x65,0x63, - 0x32,0x28,0x64,0x6f,0x74,0x28,0x5f,0x34,0x39,0x37,0x2c,0x20,0x5f,0x34,0x39,0x37, - 0x29,0x2c,0x20,0x5f,0x35,0x30,0x33,0x20,0x2a,0x20,0x64,0x65,0x74,0x32,0x28,0x70, + 0x32,0x28,0x64,0x6f,0x74,0x28,0x5f,0x35,0x30,0x30,0x2c,0x20,0x5f,0x35,0x30,0x30, + 0x29,0x2c,0x20,0x5f,0x35,0x30,0x36,0x20,0x2a,0x20,0x64,0x65,0x74,0x32,0x28,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, 0x33,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, - 0x20,0x28,0x2d,0x73,0x71,0x72,0x74,0x28,0x5f,0x35,0x33,0x39,0x2e,0x78,0x29,0x29, - 0x20,0x2a,0x20,0x73,0x69,0x67,0x6e,0x28,0x5f,0x35,0x33,0x39,0x2e,0x79,0x29,0x3b, + 0x20,0x28,0x2d,0x73,0x71,0x72,0x74,0x28,0x5f,0x35,0x34,0x32,0x2e,0x78,0x29,0x29, + 0x20,0x2a,0x20,0x73,0x69,0x67,0x6e,0x28,0x5f,0x35,0x34,0x32,0x2e,0x79,0x29,0x3b, 0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x64,0x66,0x5f,0x73,0x74, 0x72,0x6f,0x6b,0x65,0x28,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x29,0x0a,0x7b,0x0a, 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x62,0x73,0x28,0x64, 0x29,0x20,0x2d,0x20,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3b,0x0a,0x7d,0x0a, 0x0a,0x76,0x65,0x63,0x34,0x20,0x73,0x64,0x66,0x28,0x76,0x65,0x63,0x34,0x20,0x61, 0x2c,0x20,0x76,0x65,0x63,0x34,0x20,0x62,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x64,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, - 0x32,0x39,0x31,0x20,0x3d,0x20,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b, - 0x30,0x5d,0x2e,0x7a,0x20,0x2a,0x20,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73, - 0x5b,0x30,0x5d,0x2e,0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x39,0x35,0x20,0x3d,0x20,0x73,0x64,0x66, - 0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x62,0x76,0x65,0x63,0x34,0x20,0x5f,0x33,0x31,0x30,0x20,0x3d, - 0x20,0x62,0x76,0x65,0x63,0x34,0x28,0x5f,0x32,0x39,0x35,0x20,0x3c,0x3d,0x20,0x30, - 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x76,0x65,0x63,0x34,0x20,0x5f, + 0x64,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65, + 0x63,0x34,0x20,0x5f,0x33,0x30,0x33,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x62,0x2c, + 0x20,0x61,0x2c,0x20,0x76,0x65,0x63,0x34,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73, + 0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x2c,0x20,0x76,0x5f,0x61,0x61,0x2c,0x20,0x73, + 0x64,0x66,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x29, + 0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x76,0x65,0x63,0x34,0x20,0x5f, 0x33,0x32,0x37,0x20,0x3d,0x20,0x62,0x76,0x65,0x63,0x34,0x28,0x63,0x6c,0x61,0x6d, 0x70,0x28,0x64,0x2c,0x20,0x2d,0x31,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x20, 0x3c,0x3d,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, - 0x34,0x20,0x5f,0x33,0x33,0x34,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x76,0x5f, - 0x61,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20, - 0x3d,0x20,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x34,0x28,0x5f, - 0x33,0x31,0x30,0x2e,0x78,0x20,0x3f,0x20,0x62,0x2e,0x78,0x20,0x3a,0x20,0x61,0x2e, - 0x78,0x2c,0x20,0x5f,0x33,0x31,0x30,0x2e,0x79,0x20,0x3f,0x20,0x62,0x2e,0x79,0x20, - 0x3a,0x20,0x61,0x2e,0x79,0x2c,0x20,0x5f,0x33,0x31,0x30,0x2e,0x7a,0x20,0x3f,0x20, - 0x62,0x2e,0x7a,0x20,0x3a,0x20,0x61,0x2e,0x7a,0x2c,0x20,0x5f,0x33,0x31,0x30,0x2e, - 0x77,0x20,0x3f,0x20,0x62,0x2e,0x77,0x20,0x3a,0x20,0x61,0x2e,0x77,0x29,0x2c,0x20, - 0x6d,0x69,0x78,0x28,0x62,0x2c,0x20,0x61,0x2c,0x20,0x76,0x65,0x63,0x34,0x28,0x73, - 0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f, - 0x32,0x39,0x31,0x2c,0x20,0x5f,0x32,0x39,0x35,0x29,0x29,0x29,0x2c,0x20,0x5f,0x33, - 0x33,0x34,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x34,0x28,0x5f,0x33, - 0x32,0x37,0x2e,0x78,0x20,0x3f,0x20,0x62,0x2e,0x78,0x20,0x3a,0x20,0x61,0x2e,0x78, - 0x2c,0x20,0x5f,0x33,0x32,0x37,0x2e,0x79,0x20,0x3f,0x20,0x62,0x2e,0x79,0x20,0x3a, - 0x20,0x61,0x2e,0x79,0x2c,0x20,0x5f,0x33,0x32,0x37,0x2e,0x7a,0x20,0x3f,0x20,0x62, - 0x2e,0x7a,0x20,0x3a,0x20,0x61,0x2e,0x7a,0x2c,0x20,0x5f,0x33,0x32,0x37,0x2e,0x77, - 0x20,0x3f,0x20,0x62,0x2e,0x77,0x20,0x3a,0x20,0x61,0x2e,0x77,0x29,0x2c,0x20,0x6d, - 0x69,0x78,0x28,0x62,0x2c,0x20,0x61,0x2c,0x20,0x76,0x65,0x63,0x34,0x28,0x73,0x6d, - 0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x32, - 0x39,0x31,0x2c,0x20,0x64,0x29,0x29,0x29,0x2c,0x20,0x5f,0x33,0x33,0x34,0x29,0x2c, - 0x20,0x76,0x65,0x63,0x34,0x28,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x29,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c, - 0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x34,0x20,0x73,0x68,0x61,0x64,0x65, - 0x72,0x28,0x76,0x65,0x63,0x34,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x76,0x65, - 0x63,0x32,0x20,0x70,0x6f,0x73,0x2c,0x20,0x76,0x65,0x63,0x32,0x20,0x75,0x76,0x2c, - 0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x29,0x0a,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x35,0x37,0x37,0x20,0x3d,0x20, - 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65, - 0x78,0x2c,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x75,0x76,0x2e,0x78,0x20,0x2a,0x20, - 0x35,0x2e,0x30,0x2c,0x20,0x75,0x76,0x2e,0x79,0x20,0x2a,0x20,0x33,0x2e,0x37,0x35, - 0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28, + 0x34,0x20,0x5f,0x33,0x33,0x35,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x66,0x6c, + 0x6f,0x61,0x74,0x28,0x76,0x5f,0x61,0x61,0x20,0x3e,0x20,0x30,0x2e,0x30,0x29,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x6d, + 0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x5f,0x33,0x30,0x33,0x2c,0x20,0x5f,0x33,0x30, + 0x33,0x2c,0x20,0x5f,0x33,0x33,0x35,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x76,0x65, + 0x63,0x34,0x28,0x5f,0x33,0x32,0x37,0x2e,0x78,0x20,0x3f,0x20,0x62,0x2e,0x78,0x20, + 0x3a,0x20,0x61,0x2e,0x78,0x2c,0x20,0x5f,0x33,0x32,0x37,0x2e,0x79,0x20,0x3f,0x20, + 0x62,0x2e,0x79,0x20,0x3a,0x20,0x61,0x2e,0x79,0x2c,0x20,0x5f,0x33,0x32,0x37,0x2e, + 0x7a,0x20,0x3f,0x20,0x62,0x2e,0x7a,0x20,0x3a,0x20,0x61,0x2e,0x7a,0x2c,0x20,0x5f, + 0x33,0x32,0x37,0x2e,0x77,0x20,0x3f,0x20,0x62,0x2e,0x77,0x20,0x3a,0x20,0x61,0x2e, + 0x77,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x62,0x2c,0x20,0x61,0x2c,0x20,0x76,0x65, + 0x63,0x34,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e, + 0x30,0x2c,0x20,0x76,0x5f,0x61,0x61,0x2c,0x20,0x64,0x29,0x29,0x29,0x2c,0x20,0x5f, + 0x33,0x33,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x34,0x28,0x76,0x5f,0x66,0x69,0x6c, + 0x6c,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, + 0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x32,0x20, + 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x68,0x65,0x69,0x67, + 0x68,0x74,0x6d,0x61,0x70,0x28,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20, + 0x74,0x65,0x78,0x2c,0x20,0x76,0x65,0x63,0x32,0x20,0x75,0x76,0x29,0x0a,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x35,0x37,0x34,0x20,0x3d,0x20, + 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x4f,0x66,0x66,0x73,0x65,0x74,0x28,0x74,0x65, + 0x78,0x2c,0x20,0x75,0x76,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x30,0x2c,0x20, + 0x2d,0x31,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x5f,0x35,0x37,0x35,0x20,0x3d,0x20,0x5f,0x35,0x37,0x34,0x2e,0x78,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x63,0x32,0x28,0x74, + 0x65,0x78,0x74,0x75,0x72,0x65,0x4f,0x66,0x66,0x73,0x65,0x74,0x28,0x74,0x65,0x78, + 0x2c,0x20,0x75,0x76,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x2d,0x31,0x2c,0x20, + 0x31,0x29,0x29,0x2e,0x78,0x20,0x2d,0x20,0x5f,0x35,0x37,0x35,0x2c,0x20,0x74,0x65, + 0x78,0x74,0x75,0x72,0x65,0x4f,0x66,0x66,0x73,0x65,0x74,0x28,0x74,0x65,0x78,0x2c, + 0x20,0x75,0x76,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x31,0x29,0x29,0x2e,0x78, + 0x20,0x2d,0x20,0x5f,0x35,0x37,0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63, + 0x34,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x74,0x6f,0x5f,0x63,0x6f,0x6c,0x6f, + 0x72,0x28,0x76,0x65,0x63,0x32,0x20,0x6e,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x63,0x34,0x28,0x28,0x6e,0x20,0x2a, + 0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35, + 0x29,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a, + 0x0a,0x76,0x65,0x63,0x34,0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x28,0x76,0x65,0x63, + 0x34,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x6f, + 0x73,0x2c,0x20,0x76,0x65,0x63,0x32,0x20,0x75,0x76,0x2c,0x20,0x76,0x65,0x63,0x34, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76, + 0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x75,0x76,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x36,0x30,0x34,0x20,0x3d,0x20, + 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x68,0x65,0x69,0x67, + 0x68,0x74,0x6d,0x61,0x70,0x28,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, + 0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x75,0x76,0x20,0x2b, + 0x20,0x28,0x28,0x5f,0x36,0x30,0x34,0x20,0x2a,0x20,0x76,0x65,0x63,0x32,0x28,0x30, + 0x2e,0x30,0x30,0x36,0x32,0x35,0x30,0x30,0x30,0x30,0x30,0x39,0x33,0x31,0x33,0x32, + 0x32,0x35,0x37,0x34,0x36,0x31,0x35,0x34,0x37,0x38,0x35,0x31,0x35,0x36,0x32,0x35, + 0x2c,0x20,0x30,0x2e,0x30,0x30,0x38,0x33,0x33,0x33,0x33,0x33,0x33,0x37,0x36,0x37, + 0x39,0x35,0x30,0x35,0x33,0x34,0x38,0x32,0x30,0x35,0x35,0x36,0x36,0x34,0x30,0x36, + 0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x31,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x36,0x31,0x35,0x20,0x3d,0x20,0x6e,0x6f, + 0x72,0x6d,0x61,0x6c,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x68,0x65,0x69,0x67,0x68,0x74, + 0x6d,0x61,0x70,0x28,0x77,0x61,0x76,0x65,0x6c,0x65,0x74,0x73,0x5f,0x74,0x65,0x78, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f, + 0x36,0x30,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x36,0x31,0x35,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x36,0x33,0x31,0x20,0x3d,0x20,0x5f,0x36, + 0x30,0x34,0x20,0x2b,0x20,0x5f,0x36,0x31,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, + 0x65,0x63,0x34,0x20,0x63,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x74,0x65,0x78,0x74, + 0x75,0x72,0x65,0x28,0x73,0x63,0x65,0x6e,0x65,0x5f,0x74,0x65,0x78,0x2c,0x20,0x75, + 0x76,0x20,0x2b,0x20,0x28,0x28,0x5f,0x36,0x33,0x31,0x20,0x2a,0x20,0x76,0x65,0x63, + 0x32,0x28,0x30,0x2e,0x30,0x30,0x36,0x32,0x35,0x30,0x30,0x30,0x30,0x30,0x39,0x33, + 0x31,0x33,0x32,0x32,0x35,0x37,0x34,0x36,0x31,0x35,0x34,0x37,0x38,0x35,0x31,0x35, + 0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x30,0x38,0x33,0x33,0x33,0x33,0x33,0x33, + 0x37,0x36,0x37,0x39,0x35,0x30,0x35,0x33,0x34,0x38,0x32,0x30,0x35,0x35,0x36,0x36, + 0x34,0x30,0x36,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x31,0x30,0x2e,0x30,0x29,0x29, + 0x2c,0x20,0x76,0x65,0x63,0x34,0x28,0x31,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63, + 0x34,0x28,0x28,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x5f,0x36,0x33,0x31,0x29,0x20, + 0x3e,0x20,0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x39,0x38,0x30, + 0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x29,0x20, + 0x3f,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30, + 0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x20, + 0x3a,0x20,0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, + 0x34,0x20,0x5f,0x36,0x35,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, 0x73,0x68,0x61,0x64,0x65,0x72,0x5f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x5b, - 0x30,0x5d,0x2e,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x5f,0x35,0x37,0x39,0x20,0x3d,0x20,0x5f,0x35,0x37,0x37,0x2e,0x78,0x20, - 0x2d,0x20,0x30,0x2e,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20, - 0x63,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x77,0x61,0x74,0x65, - 0x72,0x5f,0x74,0x65,0x78,0x2c,0x20,0x75,0x76,0x20,0x2b,0x20,0x28,0x28,0x76,0x65, - 0x63,0x32,0x28,0x30,0x2e,0x30,0x30,0x31,0x35,0x36,0x32,0x35,0x30,0x30,0x30,0x32, - 0x33,0x32,0x38,0x33,0x30,0x36,0x34,0x33,0x36,0x35,0x33,0x38,0x36,0x39,0x36,0x32, - 0x38,0x39,0x30,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x30,0x32,0x30,0x38,0x33, - 0x33,0x33,0x33,0x34,0x34,0x31,0x39,0x38,0x37,0x36,0x33,0x33,0x37,0x30,0x35,0x31, - 0x33,0x39,0x31,0x36,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2a,0x20,0x5f,0x35, - 0x37,0x39,0x29,0x20,0x2a,0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x5f,0x75,0x6e,0x69, - 0x66,0x6f,0x72,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78,0x29,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x36,0x30,0x32,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x64,0x65,0x72,0x5f,0x75,0x6e,0x69,0x66, - 0x6f,0x72,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x7a,0x20,0x3e,0x20,0x30,0x2e,0x30,0x29, - 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, - 0x36,0x30,0x32,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x5f,0x35,0x37,0x39,0x29, - 0x20,0x2b,0x20,0x76,0x65,0x63,0x34,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x30,0x32,0x20, - 0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63, - 0x20,0x3d,0x20,0x5f,0x36,0x30,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, - 0x75,0x72,0x6e,0x20,0x5f,0x36,0x30,0x32,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x6f,0x69, - 0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62, - 0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x31,0x38,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70, - 0x65,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f, - 0x6f,0x6c,0x20,0x5f,0x36,0x32,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, - 0x28,0x5f,0x36,0x31,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x32,0x34,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79, - 0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x31,0x39,0x36,0x30,0x37,0x38,0x34, - 0x34,0x32,0x39,0x36,0x38,0x34,0x32,0x38,0x31,0x33,0x34,0x39,0x31,0x38,0x32,0x31, - 0x32,0x38,0x39,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x32,0x34,0x20,0x3d,0x20,0x5f,0x36,0x31, - 0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f, - 0x6c,0x20,0x5f,0x36,0x32,0x37,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20, - 0x3e,0x20,0x30,0x2e,0x30,0x30,0x31,0x39,0x36,0x30,0x37,0x38,0x34,0x34,0x32,0x39, + 0x30,0x5d,0x2e,0x78,0x20,0x3e,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x36,0x30,0x34,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x36,0x31,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x5f,0x36,0x35,0x36,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x6e, + 0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x74,0x6f,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f, + 0x74,0x6f,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35, + 0x29,0x2c,0x20,0x76,0x65,0x63,0x34,0x28,0x30,0x2e,0x32,0x35,0x29,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x35, + 0x36,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x63,0x20,0x3d,0x20,0x5f,0x36,0x35,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, + 0x65,0x63,0x34,0x20,0x5f,0x36,0x37,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x73,0x68,0x61,0x64,0x65,0x72,0x5f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d, + 0x73,0x5b,0x30,0x5d,0x2e,0x79,0x20,0x3e,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x37,0x33, + 0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x6e,0x6f,0x69,0x73,0x65, + 0x5f,0x74,0x65,0x78,0x2c,0x20,0x75,0x76,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x37,0x33,0x20,0x3d,0x20,0x63, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20, + 0x5f,0x36,0x37,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, + 0x20,0x5f,0x36,0x37,0x33,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d, + 0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, + 0x20,0x5f,0x36,0x38,0x39,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e, + 0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20, + 0x5f,0x36,0x39,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36, + 0x38,0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x5f,0x36,0x39,0x35,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20, + 0x3c,0x20,0x30,0x2e,0x30,0x30,0x31,0x39,0x36,0x30,0x37,0x38,0x34,0x34,0x32,0x39, 0x36,0x38,0x34,0x32,0x38,0x31,0x33,0x34,0x39,0x31,0x38,0x32,0x31,0x32,0x38,0x39, - 0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f, - 0x36,0x33,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x32, - 0x37,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x36,0x33,0x33,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c, - 0x20,0x30,0x2e,0x30,0x30,0x35,0x38,0x38,0x32,0x33,0x35,0x33,0x30,0x35,0x36,0x32, - 0x32,0x32,0x32,0x30,0x30,0x33,0x39,0x33,0x36,0x37,0x36,0x37,0x35,0x37,0x38,0x31, - 0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c, - 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x36,0x33,0x33,0x20,0x3d,0x20,0x5f,0x36,0x32,0x37,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x33, - 0x36,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30, - 0x30,0x35,0x38,0x38,0x32,0x33,0x35,0x33,0x30,0x35,0x36,0x32,0x32,0x32,0x32,0x30, - 0x30,0x33,0x39,0x33,0x36,0x37,0x36,0x37,0x35,0x37,0x38,0x31,0x32,0x35,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x34,0x32,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x33,0x36,0x29,0x0a,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x34,0x32,0x20, - 0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x39, - 0x38,0x30,0x33,0x39,0x32,0x31,0x39,0x31,0x35,0x35,0x39,0x30,0x37,0x36,0x33,0x30, - 0x39,0x32,0x30,0x34,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x34,0x32,0x20,0x3d, - 0x20,0x5f,0x36,0x33,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x34,0x35,0x20,0x3d,0x20,0x76,0x5f,0x74, - 0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x39,0x38,0x30,0x33,0x39,0x32, - 0x31,0x39,0x31,0x35,0x35,0x39,0x30,0x37,0x36,0x33,0x30,0x39,0x32,0x30,0x34,0x31, - 0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, - 0x20,0x5f,0x36,0x35,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, - 0x36,0x34,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x5f,0x36,0x35,0x31,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65, - 0x20,0x3c,0x20,0x30,0x2e,0x30,0x31,0x33,0x37,0x32,0x35,0x34,0x39,0x30,0x33,0x30, - 0x39,0x32,0x39,0x38,0x30,0x33,0x38,0x34,0x38,0x32,0x36,0x36,0x36,0x30,0x31,0x35, - 0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, - 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x5f,0x36,0x35,0x31,0x20,0x3d,0x20,0x5f,0x36,0x34,0x35,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36, - 0x35,0x34,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e, - 0x30,0x31,0x33,0x37,0x32,0x35,0x34,0x39,0x30,0x33,0x30,0x39,0x32,0x39,0x38,0x30, - 0x33,0x38,0x34,0x38,0x32,0x36,0x36,0x36,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x36,0x30,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x35,0x34,0x29,0x0a,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x36,0x30,0x20, - 0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x31,0x37, - 0x36,0x34,0x37,0x30,0x35,0x39,0x36,0x33,0x34,0x33,0x32,0x37,0x38,0x38,0x38,0x34, - 0x38,0x38,0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x36,0x30,0x20,0x3d,0x20, - 0x5f,0x36,0x35,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x36,0x33,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79, - 0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x31,0x37,0x36,0x34,0x37,0x30,0x35,0x39, - 0x36,0x33,0x34,0x33,0x32,0x37,0x38,0x38,0x38,0x34,0x38,0x38,0x37,0x36,0x39,0x35, - 0x33,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f, - 0x36,0x36,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x36, - 0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x36,0x36,0x39,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c, - 0x20,0x30,0x2e,0x30,0x32,0x31,0x35,0x36,0x38,0x36,0x32,0x38,0x30,0x32,0x38,0x30, - 0x33,0x35,0x31,0x36,0x33,0x38,0x37,0x39,0x33,0x39,0x34,0x35,0x33,0x31,0x32,0x35, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, - 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, - 0x36,0x36,0x39,0x20,0x3d,0x20,0x5f,0x36,0x36,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x63,0x20,0x3d,0x20,0x76, - 0x65,0x63,0x34,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65, - 0x63,0x34,0x20,0x5f,0x36,0x37,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, - 0x28,0x21,0x28,0x5f,0x36,0x32,0x34,0x20,0x26,0x26,0x20,0x5f,0x36,0x33,0x33,0x29, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x76,0x5f,0x75, - 0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x66,0x73,0x5f,0x70,0x61,0x72, - 0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20, - 0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x75,0x5f,0x69,0x6d,0x61,0x67, - 0x65,0x2c,0x20,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x5f,0x75,0x76,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x37,0x36,0x20,0x3d,0x20,0x64,0x65, - 0x5f,0x67,0x61,0x6d,0x6d,0x61,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b, + 0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x5f,0x36,0x39,0x35,0x20,0x3d,0x20,0x5f,0x36,0x38,0x39,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f, + 0x36,0x39,0x38,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30, + 0x2e,0x30,0x30,0x31,0x39,0x36,0x30,0x37,0x38,0x34,0x34,0x32,0x39,0x36,0x38,0x34, + 0x32,0x38,0x31,0x33,0x34,0x39,0x31,0x38,0x32,0x31,0x32,0x38,0x39,0x30,0x36,0x32, + 0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x30,0x34, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x39,0x38,0x29,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37, + 0x30,0x34,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e, + 0x30,0x30,0x35,0x38,0x38,0x32,0x33,0x35,0x33,0x30,0x35,0x36,0x32,0x32,0x32,0x32, + 0x30,0x30,0x33,0x39,0x33,0x36,0x37,0x36,0x37,0x35,0x37,0x38,0x31,0x32,0x35,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36, - 0x37,0x36,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x36,0x37,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x76,0x65,0x63,0x34,0x20,0x5f,0x36,0x39,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, - 0x66,0x20,0x28,0x5f,0x36,0x32,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x33,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20, - 0x76,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76, - 0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x6f,0x76, - 0x65,0x72,0x6c,0x61,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x36,0x39,0x37,0x20,0x3d,0x20,0x67,0x61,0x6d,0x6d,0x61,0x28,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x39,0x37,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x36,0x39, - 0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x37,0x31,0x33, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x33,0x33,0x29,0x0a, 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37, - 0x31,0x33,0x20,0x3d,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x20,0x2a,0x20,0x63,0x2e,0x77, + 0x30,0x34,0x20,0x3d,0x20,0x5f,0x36,0x39,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x30,0x37,0x20,0x3d, + 0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x35,0x38, + 0x38,0x32,0x33,0x35,0x33,0x30,0x35,0x36,0x32,0x32,0x32,0x32,0x30,0x30,0x33,0x39, + 0x33,0x36,0x37,0x36,0x37,0x35,0x37,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x31,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x37,0x30,0x37,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x31,0x33,0x20,0x3d,0x20,0x76, + 0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x39,0x38,0x30,0x33, + 0x39,0x32,0x31,0x39,0x31,0x35,0x35,0x39,0x30,0x37,0x36,0x33,0x30,0x39,0x32,0x30, + 0x34,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x31,0x33,0x20,0x3d,0x20,0x5f,0x37, + 0x30,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f, + 0x6f,0x6c,0x20,0x5f,0x37,0x31,0x36,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65, + 0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x39,0x38,0x30,0x33,0x39,0x32,0x31,0x39,0x31, + 0x35,0x35,0x39,0x30,0x37,0x36,0x33,0x30,0x39,0x32,0x30,0x34,0x31,0x30,0x31,0x35, + 0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37, + 0x32,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x31,0x36, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x5f,0x37,0x32,0x32,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20, + 0x30,0x2e,0x30,0x31,0x33,0x37,0x32,0x35,0x34,0x39,0x30,0x33,0x30,0x39,0x32,0x39, + 0x38,0x30,0x33,0x38,0x34,0x38,0x32,0x36,0x36,0x36,0x30,0x31,0x35,0x36,0x32,0x35, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, - 0x37,0x31,0x33,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x62,0x76,0x65,0x63,0x34,0x20,0x5f,0x37,0x32,0x36,0x20,0x3d,0x20, - 0x62,0x76,0x65,0x63,0x34,0x28,0x5f,0x36,0x36,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x63,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x5f,0x37,0x32,0x36,0x2e,0x78, - 0x20,0x3f,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x2e,0x78,0x20,0x3a,0x20,0x5f,0x37,0x31, - 0x33,0x2e,0x78,0x2c,0x20,0x5f,0x37,0x32,0x36,0x2e,0x79,0x20,0x3f,0x20,0x76,0x5f, - 0x63,0x6f,0x6c,0x2e,0x79,0x20,0x3a,0x20,0x5f,0x37,0x31,0x33,0x2e,0x79,0x2c,0x20, - 0x5f,0x37,0x32,0x36,0x2e,0x7a,0x20,0x3f,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x2e,0x7a, - 0x20,0x3a,0x20,0x5f,0x37,0x31,0x33,0x2e,0x7a,0x2c,0x20,0x5f,0x37,0x32,0x36,0x2e, - 0x77,0x20,0x3f,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x2e,0x77,0x20,0x3a,0x20,0x5f,0x37, - 0x31,0x33,0x2e,0x77,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x64,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, - 0x20,0x28,0x5f,0x36,0x34,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x36,0x20,0x3d,0x20,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37, - 0x20,0x3d,0x20,0x76,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x76, - 0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x76,0x5f,0x63,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37, - 0x34,0x34,0x20,0x3d,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x62,0x6f, - 0x78,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64, - 0x20,0x3d,0x20,0x5f,0x37,0x34,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x37,0x32,0x32,0x20,0x3d,0x20,0x5f,0x37,0x31,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x32,0x35,0x20, + 0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x31,0x33, + 0x37,0x32,0x35,0x34,0x39,0x30,0x33,0x30,0x39,0x32,0x39,0x38,0x30,0x33,0x38,0x34, + 0x38,0x32,0x36,0x36,0x36,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x33,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x37,0x32,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x33,0x31,0x20,0x3d,0x20,0x76, + 0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x31,0x37,0x36,0x34,0x37, + 0x30,0x35,0x39,0x36,0x33,0x34,0x33,0x32,0x37,0x38,0x38,0x38,0x34,0x38,0x38,0x37, + 0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, 0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x35,0x31,0x29,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x30,0x20,0x3d,0x20,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x76,0x5f,0x61,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x76,0x5f,0x62,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x5f,0x37,0x35,0x35,0x20,0x3d,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65, - 0x5f,0x73,0x65,0x67,0x6d,0x65,0x6e,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x64,0x20,0x3d,0x20,0x5f,0x37,0x35,0x35,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x76,0x5f,0x70,0x6f,0x73,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63, - 0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x76,0x5f,0x62, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65, - 0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x20,0x3d,0x20,0x76,0x5f, - 0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64, - 0x20,0x3d,0x20,0x6d,0x69,0x6e,0x28,0x5f,0x37,0x35,0x35,0x2c,0x20,0x64,0x69,0x73, - 0x74,0x61,0x6e,0x63,0x65,0x5f,0x73,0x65,0x67,0x6d,0x65,0x6e,0x74,0x28,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, - 0x36,0x36,0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36, + 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x33,0x31,0x20,0x3d,0x20,0x5f,0x37,0x32, + 0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f, + 0x6c,0x20,0x5f,0x37,0x33,0x34,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20, + 0x3e,0x20,0x30,0x2e,0x30,0x31,0x37,0x36,0x34,0x37,0x30,0x35,0x39,0x36,0x33,0x34, + 0x33,0x32,0x37,0x38,0x38,0x38,0x34,0x38,0x38,0x37,0x36,0x39,0x35,0x33,0x31,0x32, + 0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x34,0x30, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x33,0x34,0x29,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37, + 0x34,0x30,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e, + 0x30,0x32,0x31,0x35,0x36,0x38,0x36,0x32,0x38,0x30,0x32,0x38,0x30,0x33,0x35,0x31, + 0x36,0x33,0x38,0x37,0x39,0x33,0x39,0x34,0x35,0x33,0x31,0x32,0x35,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x34,0x30, + 0x20,0x3d,0x20,0x5f,0x37,0x33,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x63,0x20,0x3d,0x20,0x76,0x65,0x63,0x34, + 0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20, + 0x5f,0x37,0x34,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28, + 0x5f,0x36,0x39,0x35,0x20,0x26,0x26,0x20,0x5f,0x37,0x30,0x34,0x29,0x29,0x0a,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63, + 0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x76,0x5f,0x75,0x76,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73, + 0x5b,0x30,0x5d,0x2e,0x78,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x74, + 0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x75,0x5f,0x69,0x6d,0x61,0x67,0x65,0x2c,0x20, + 0x73,0x6d,0x6f,0x6f,0x74,0x68,0x5f,0x75,0x76,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x5f,0x37,0x34,0x37,0x20,0x3d,0x20,0x64,0x65,0x5f,0x67,0x61, + 0x6d,0x6d,0x61,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x34,0x37,0x20, + 0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63, + 0x20,0x3d,0x20,0x5f,0x37,0x34,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, + 0x34,0x20,0x5f,0x37,0x37,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x5f,0x36,0x39,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33, + 0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65, + 0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x76,0x5f,0x63, + 0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x6f,0x76,0x65,0x72,0x6c, + 0x61,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37, + 0x37,0x31,0x20,0x3d,0x20,0x67,0x61,0x6d,0x6d,0x61,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, + 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x5f,0x37,0x37,0x31,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x37,0x37,0x31,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x37,0x38,0x37,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x30,0x34,0x29,0x0a,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x38,0x37,0x20, + 0x3d,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x20,0x2a,0x20,0x63,0x2e,0x77,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x38,0x37, + 0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x62,0x76,0x65,0x63,0x34,0x20,0x5f,0x38,0x30,0x30,0x20,0x3d,0x20,0x62,0x76,0x65, + 0x63,0x34,0x28,0x5f,0x37,0x33,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x20, + 0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x5f,0x38,0x30,0x30,0x2e,0x78,0x20,0x3f,0x20, + 0x76,0x5f,0x63,0x6f,0x6c,0x2e,0x78,0x20,0x3a,0x20,0x5f,0x37,0x38,0x37,0x2e,0x78, + 0x2c,0x20,0x5f,0x38,0x30,0x30,0x2e,0x79,0x20,0x3f,0x20,0x76,0x5f,0x63,0x6f,0x6c, + 0x2e,0x79,0x20,0x3a,0x20,0x5f,0x37,0x38,0x37,0x2e,0x79,0x2c,0x20,0x5f,0x38,0x30, + 0x30,0x2e,0x7a,0x20,0x3f,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x2e,0x7a,0x20,0x3a,0x20, + 0x5f,0x37,0x38,0x37,0x2e,0x7a,0x2c,0x20,0x5f,0x38,0x30,0x30,0x2e,0x77,0x20,0x3f, + 0x20,0x76,0x5f,0x63,0x6f,0x6c,0x2e,0x77,0x20,0x3a,0x20,0x5f,0x37,0x38,0x37,0x2e, + 0x77,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x20, + 0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, + 0x37,0x31,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20, + 0x3d,0x20,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20, + 0x76,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63, + 0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x76,0x5f,0x62,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x76,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x38,0x31,0x38,0x20, + 0x3d,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x62,0x6f,0x78,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d,0x20, + 0x5f,0x38,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x32,0x32,0x29,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30, 0x20,0x3d,0x20,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x31,0x20,0x3d,0x20,0x76,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x76,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x38, + 0x32,0x39,0x20,0x3d,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x73,0x65, + 0x67,0x6d,0x65,0x6e,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x64,0x20,0x3d,0x20,0x5f,0x38,0x32,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x76,0x5f,0x61,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76, - 0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x76, - 0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x39,0x20,0x3d,0x20,0x76,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d,0x20,0x64,0x69,0x73, - 0x74,0x61,0x6e,0x63,0x65,0x5f,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x28,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f, - 0x37,0x38,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x28,0x21, - 0x5f,0x36,0x32,0x34,0x29,0x20,0x26,0x26,0x20,0x28,0x21,0x5f,0x36,0x33,0x33,0x29, - 0x29,0x20,0x26,0x26,0x20,0x28,0x21,0x5f,0x36,0x36,0x30,0x29,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20,0x64,0x20,0x2d,0x20,0x76,0x5f,0x72,0x61,0x64, - 0x69,0x75,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63, - 0x34,0x20,0x5f,0x37,0x39,0x38,0x20,0x3d,0x20,0x73,0x64,0x66,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x5f,0x37,0x38,0x36,0x20,0x3d,0x20,0x5f,0x37,0x39,0x38,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37, - 0x38,0x36,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x38,0x30,0x35,0x20,0x3d,0x20,0x5f,0x37, - 0x38,0x36,0x20,0x2a,0x20,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x38,0x30,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20, - 0x5f,0x38,0x30,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x76,0x5f,0x70,0x6f,0x73,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x32,0x35,0x20,0x3d,0x20,0x28,0x76,0x5f,0x70,0x6f,0x73,0x48,0x20,0x2b,0x20,0x76, - 0x65,0x63,0x32,0x28,0x31,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x32,0x36,0x20,0x3d,0x20,0x76,0x5f,0x75,0x73,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x38,0x32,0x31,0x20,0x3d,0x20,0x73,0x68,0x61, - 0x64,0x65,0x72,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x32,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x63,0x20,0x3d,0x20,0x5f,0x38,0x32,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, - 0x66,0x20,0x28,0x5f,0x38,0x32,0x31,0x2e,0x77,0x20,0x3d,0x3d,0x20,0x30,0x2e,0x30, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x7d, - 0x0a,0x0a,0x00, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x76,0x5f,0x62,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x20,0x3d,0x20,0x76,0x5f,0x63,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d,0x20, + 0x6d,0x69,0x6e,0x28,0x5f,0x38,0x32,0x39,0x2c,0x20,0x64,0x69,0x73,0x74,0x61,0x6e, + 0x63,0x65,0x5f,0x73,0x65,0x67,0x6d,0x65,0x6e,0x74,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, + 0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x34,0x30, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x20,0x3d,0x20, + 0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x76,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x76,0x5f,0x62,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x20,0x3d, + 0x20,0x76,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d,0x20,0x64,0x69,0x73,0x74,0x61,0x6e, + 0x63,0x65,0x5f,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x38,0x36,0x30, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x28,0x21,0x5f,0x36,0x39, + 0x35,0x29,0x20,0x26,0x26,0x20,0x28,0x21,0x5f,0x37,0x30,0x34,0x29,0x29,0x20,0x26, + 0x26,0x20,0x28,0x21,0x5f,0x37,0x33,0x31,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x30,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x31,0x20,0x3d,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x32,0x20,0x3d,0x20,0x64,0x20,0x2d,0x20,0x76,0x5f,0x72,0x61,0x64,0x69,0x75,0x73, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f, + 0x38,0x37,0x32,0x20,0x3d,0x20,0x73,0x64,0x66,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x32,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x2c,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x5f,0x38,0x36,0x30,0x20,0x3d,0x20,0x5f,0x38,0x37,0x32,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x38,0x36,0x30,0x20, + 0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76, + 0x65,0x63,0x34,0x20,0x5f,0x38,0x37,0x39,0x20,0x3d,0x20,0x5f,0x38,0x36,0x30,0x20, + 0x2a,0x20,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63, + 0x20,0x3d,0x20,0x5f,0x38,0x37,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, + 0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x5f,0x38,0x37, + 0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x20, + 0x3d,0x20,0x28,0x28,0x76,0x5f,0x70,0x6f,0x73,0x48,0x20,0x2b,0x20,0x76,0x65,0x63, + 0x32,0x28,0x31,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a, + 0x20,0x76,0x65,0x63,0x32,0x28,0x31,0x2e,0x30,0x2c,0x20,0x2d,0x31,0x2e,0x30,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x32,0x36,0x20,0x3d,0x20,0x76,0x5f,0x75,0x73,0x65,0x72,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x38,0x39,0x37,0x20,0x3d,0x20,0x73,0x68, + 0x61,0x64,0x65,0x72,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x38,0x39,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x38,0x39,0x37,0x2e,0x77,0x20,0x3d,0x3d,0x20,0x30,0x2e, + 0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x63,0x3b,0x0a, + 0x7d,0x0a,0x0a,0x00, }; /* #version 300 es @@ -1178,15 +1261,16 @@ static const char shallow_water_fs_source_glsl330[8531] = { layout(location = 7) in float in_radius; out float v_stroke; layout(location = 8) in float in_stroke; + out float v_aa; + layout(location = 9) in float in_aa; out float v_type; - layout(location = 9) in vec4 in_params; + layout(location = 10) in vec4 in_params; out float v_alpha; out float v_fill; - out float v_aa; layout(location = 1) in vec2 in_posH; out vec2 v_posH; out vec4 v_user; - layout(location = 10) in vec4 in_user_params; + layout(location = 11) in vec4 in_user_params; void main() { @@ -1198,10 +1282,10 @@ static const char shallow_water_fs_source_glsl330[8531] = { v_col = in_col; v_radius = in_radius; v_stroke = in_stroke; + v_aa = in_aa; v_type = in_params.x; v_alpha = in_params.y; v_fill = in_params.z; - v_aa = in_params.w; gl_Position = vec4(in_posH, 0.0, 1.0); v_posH = in_posH; v_user = in_user_params; @@ -1209,7 +1293,7 @@ static const char shallow_water_fs_source_glsl330[8531] = { } */ -static const char shallow_water_vs_source_glsl300es[1082] = { +static const char shallow_water_vs_source_glsl300es[1114] = { 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x30,0x30,0x20,0x65,0x73,0x0a, 0x0a,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x32,0x20,0x76,0x5f,0x70,0x6f,0x73,0x3b, 0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e, @@ -1238,38 +1322,40 @@ static const char shallow_water_vs_source_glsl300es[1082] = { 0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f, 0x6e,0x20,0x3d,0x20,0x38,0x29,0x20,0x69,0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, 0x69,0x6e,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3b,0x0a,0x6f,0x75,0x74,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x3b,0x0a,0x6c,0x61,0x79, - 0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x39, - 0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x69,0x6e,0x5f,0x70,0x61,0x72, - 0x61,0x6d,0x73,0x3b,0x0a,0x6f,0x75,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76, - 0x5f,0x61,0x6c,0x70,0x68,0x61,0x3b,0x0a,0x6f,0x75,0x74,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x3b,0x0a,0x6f,0x75,0x74,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x76,0x5f,0x61,0x61,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74, - 0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x31,0x29,0x20,0x69, - 0x6e,0x20,0x76,0x65,0x63,0x32,0x20,0x69,0x6e,0x5f,0x70,0x6f,0x73,0x48,0x3b,0x0a, - 0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x32,0x20,0x76,0x5f,0x70,0x6f,0x73,0x48,0x3b, - 0x0a,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x76,0x5f,0x75,0x73,0x65,0x72, + 0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x61,0x61,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75, + 0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x39,0x29,0x20, + 0x69,0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x69,0x6e,0x5f,0x61,0x61,0x3b,0x0a, + 0x6f,0x75,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x74,0x79,0x70,0x65, 0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f, 0x6e,0x20,0x3d,0x20,0x31,0x30,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20, - 0x69,0x6e,0x5f,0x75,0x73,0x65,0x72,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x3b,0x0a, - 0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x76,0x5f,0x70,0x6f,0x73,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x70,0x6f, - 0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x61,0x20,0x3d,0x20,0x69,0x6e,0x5f, - 0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x62,0x20,0x3d,0x20,0x69,0x6e,0x5f, - 0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x63,0x20,0x3d,0x20,0x69,0x6e,0x5f, - 0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x75,0x76,0x20,0x3d,0x20,0x69,0x6e, - 0x5f,0x75,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x20,0x3d, - 0x20,0x69,0x6e,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x72, - 0x61,0x64,0x69,0x75,0x73,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x72,0x61,0x64,0x69,0x75, - 0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x20, - 0x3d,0x20,0x69,0x6e,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x70,0x61,0x72, - 0x61,0x6d,0x73,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x61,0x6c,0x70, - 0x68,0x61,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x79, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x20,0x3d,0x20,0x69, - 0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x76,0x5f,0x61,0x61,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73, - 0x2e,0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74, + 0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x3b,0x0a,0x6f,0x75,0x74,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x3b,0x0a,0x6f,0x75, + 0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x3b,0x0a, + 0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20, + 0x3d,0x20,0x31,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x32,0x20,0x69,0x6e,0x5f, + 0x70,0x6f,0x73,0x48,0x3b,0x0a,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x32,0x20,0x76, + 0x5f,0x70,0x6f,0x73,0x48,0x3b,0x0a,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20, + 0x76,0x5f,0x75,0x73,0x65,0x72,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c, + 0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x31,0x31,0x29,0x20,0x69,0x6e, + 0x20,0x76,0x65,0x63,0x34,0x20,0x69,0x6e,0x5f,0x75,0x73,0x65,0x72,0x5f,0x70,0x61, + 0x72,0x61,0x6d,0x73,0x3b,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e, + 0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x70,0x6f,0x73,0x20,0x3d, + 0x20,0x69,0x6e,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x61, + 0x20,0x3d,0x20,0x69,0x6e,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x62, + 0x20,0x3d,0x20,0x69,0x6e,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x63, + 0x20,0x3d,0x20,0x69,0x6e,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x75, + 0x76,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x75,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, + 0x5f,0x63,0x6f,0x6c,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x76,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x20,0x3d,0x20,0x69,0x6e, + 0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x73, + 0x74,0x72,0x6f,0x6b,0x65,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x73,0x74,0x72,0x6f,0x6b, + 0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x61,0x61,0x20,0x3d,0x20,0x69,0x6e, + 0x5f,0x61,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20, + 0x3d,0x20,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x78,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x20,0x3d,0x20,0x69,0x6e,0x5f, + 0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f, + 0x66,0x69,0x6c,0x6c,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73, + 0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74, 0x69,0x6f,0x6e,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x69,0x6e,0x5f,0x70,0x6f, 0x73,0x48,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x76,0x5f,0x70,0x6f,0x73,0x48,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x70, @@ -1284,10 +1370,11 @@ static const char shallow_water_vs_source_glsl300es[1082] = { precision mediump float; precision highp int; - uniform highp vec4 fs_params[1]; uniform highp vec4 shader_uniforms[1]; + uniform highp vec4 fs_params[1]; uniform highp sampler2D noise_tex; - uniform highp sampler2D water_tex; + uniform highp sampler2D wavelets_tex; + uniform highp sampler2D scene_tex; uniform highp sampler2D u_image; in highp float v_stroke; @@ -1308,8 +1395,8 @@ static const char shallow_water_vs_source_glsl300es[1082] = { highp vec2 smooth_uv(highp vec2 uv, highp vec2 texture_size) { - highp vec2 _204 = floor(uv * texture_size + vec2(0.5)); - return (_204 + clamp((uv * texture_size + (-_204)) / fwidth(uv * texture_size), vec2(-0.5), vec2(0.5))) / texture_size; + highp vec2 _216 = floor(uv * texture_size + vec2(0.5)); + return (_216 + clamp((uv * texture_size + (-_216)) / fwidth(uv * texture_size), vec2(-0.5), vec2(0.5))) / texture_size; } highp vec4 de_gamma(highp vec4 c) @@ -1319,16 +1406,16 @@ static const char shallow_water_vs_source_glsl300es[1082] = { highp float overlay(highp float base, highp float blend) { - highp float _104; + highp float _116; if (base <= 0.5) { - _104 = (2.0 * base) * blend; + _116 = (2.0 * base) * blend; } else { - _104 = ((1.0 - base) * (-2.0)) * (1.0 - blend) + 1.0; + _116 = ((1.0 - base) * (-2.0)) * (1.0 - blend) + 1.0; } - return _104; + return _116; } highp vec3 overlay(highp vec3 base, highp vec3 blend) @@ -1361,8 +1448,8 @@ static const char shallow_water_vs_source_glsl300es[1082] = { highp float distance_aabb(highp vec2 p, highp vec2 he) { - highp vec2 _357 = abs(p) - he; - return length(max(_357, vec2(0.0))) + min(max(_357.x, _357.y), 0.0); + highp vec2 _360 = abs(p) - he; + return length(max(_360, vec2(0.0))) + min(max(_360.x, _360.y), 0.0); } highp float distance_box(inout highp vec2 p, highp vec2 c, highp vec2 he, highp vec2 u) @@ -1377,40 +1464,40 @@ static const char shallow_water_vs_source_glsl300es[1082] = { highp float safe_div(highp float a, highp float b) { - highp float _225; + highp float _237; if (b == 0.0) { - _225 = 0.0; + _237 = 0.0; } else { - _225 = a / b; + _237 = a / b; } - return _225; + return _237; } highp float safe_len(highp vec2 v) { - highp float _238 = dot(v, v); - highp float _241; - if (_238 == 0.0) + highp float _250 = dot(v, v); + highp float _253; + if (_250 == 0.0) { - _241 = 0.0; + _253 = 0.0; } else { - _241 = sqrt(_238); + _253 = sqrt(_250); } - return _241; + return _253; } highp float distance_segment(highp vec2 p, highp vec2 a, highp vec2 b) { - highp vec2 _402 = b - a; - highp vec2 _406 = p - a; - highp float param = dot(_406, _402); - highp float param_1 = dot(_402, _402); - highp vec2 param_2 = _406 - (_402 * clamp(safe_div(param, param_1), 0.0, 1.0)); + highp vec2 _405 = b - a; + highp vec2 _409 = p - a; + highp float param = dot(_409, _405); + highp float param_1 = dot(_405, _405); + highp vec2 param_2 = _409 - (_405 * clamp(safe_div(param, param_1), 0.0, 1.0)); return safe_len(param_2); } @@ -1421,32 +1508,32 @@ static const char shallow_water_vs_source_glsl300es[1082] = { highp float distance_triangle(highp vec2 p, highp vec2 a, highp vec2 b, highp vec2 c) { - highp vec2 _432 = b - a; - highp vec2 _436 = c - b; - highp vec2 _440 = a - c; - highp vec2 _444 = p - a; - highp vec2 _448 = p - b; - highp vec2 _452 = p - c; - highp float param = dot(_444, _432); - highp float param_1 = dot(_432, _432); - highp vec2 _467 = _444 - (_432 * clamp(safe_div(param, param_1), 0.0, 1.0)); - highp float param_2 = dot(_448, _436); - highp float param_3 = dot(_436, _436); - highp vec2 _482 = _448 - (_436 * clamp(safe_div(param_2, param_3), 0.0, 1.0)); - highp float param_4 = dot(_452, _440); - highp float param_5 = dot(_440, _440); - highp vec2 _497 = _452 - (_440 * clamp(safe_div(param_4, param_5), 0.0, 1.0)); - highp vec2 param_6 = _432; - highp vec2 param_7 = _440; - highp float _503 = det2(param_6, param_7); - highp vec2 param_8 = _444; - highp vec2 param_9 = _432; - highp vec2 param_10 = _448; - highp vec2 param_11 = _436; - highp vec2 param_12 = _452; - highp vec2 param_13 = _440; - highp vec2 _539 = min(min(vec2(dot(_467, _467), _503 * det2(param_8, param_9)), vec2(dot(_482, _482), _503 * det2(param_10, param_11))), vec2(dot(_497, _497), _503 * det2(param_12, param_13))); - return (-sqrt(_539.x)) * sign(_539.y); + highp vec2 _435 = b - a; + highp vec2 _439 = c - b; + highp vec2 _443 = a - c; + highp vec2 _447 = p - a; + highp vec2 _451 = p - b; + highp vec2 _455 = p - c; + highp float param = dot(_447, _435); + highp float param_1 = dot(_435, _435); + highp vec2 _470 = _447 - (_435 * clamp(safe_div(param, param_1), 0.0, 1.0)); + highp float param_2 = dot(_451, _439); + highp float param_3 = dot(_439, _439); + highp vec2 _485 = _451 - (_439 * clamp(safe_div(param_2, param_3), 0.0, 1.0)); + highp float param_4 = dot(_455, _443); + highp float param_5 = dot(_443, _443); + highp vec2 _500 = _455 - (_443 * clamp(safe_div(param_4, param_5), 0.0, 1.0)); + highp vec2 param_6 = _435; + highp vec2 param_7 = _443; + highp float _506 = det2(param_6, param_7); + highp vec2 param_8 = _447; + highp vec2 param_9 = _435; + highp vec2 param_10 = _451; + highp vec2 param_11 = _439; + highp vec2 param_12 = _455; + highp vec2 param_13 = _443; + highp vec2 _542 = min(min(vec2(dot(_470, _470), _506 * det2(param_8, param_9)), vec2(dot(_485, _485), _506 * det2(param_10, param_11))), vec2(dot(_500, _500), _506 * det2(param_12, param_13))); + return (-sqrt(_542.x)) * sign(_542.y); } highp float sdf_stroke(highp float d) @@ -1456,161 +1543,188 @@ static const char shallow_water_vs_source_glsl300es[1082] = { highp vec4 sdf(highp vec4 a, highp vec4 b, highp float d) { - highp float _291 = fs_params[0].z * fs_params[0].w; highp float param = d; - highp float _295 = sdf_stroke(param); - bvec4 _310 = bvec4(_295 <= 0.0); + highp vec4 _303 = mix(b, a, vec4(smoothstep(0.0, v_aa, sdf_stroke(param)))); bvec4 _327 = bvec4(clamp(d, -1.0, 1.0) <= 0.0); - highp vec4 _334 = vec4(v_aa); - result = mix(mix(vec4(_310.x ? b.x : a.x, _310.y ? b.y : a.y, _310.z ? b.z : a.z, _310.w ? b.w : a.w), mix(b, a, vec4(smoothstep(0.0, _291, _295))), _334), mix(vec4(_327.x ? b.x : a.x, _327.y ? b.y : a.y, _327.z ? b.z : a.z, _327.w ? b.w : a.w), mix(b, a, vec4(smoothstep(0.0, _291, d))), _334), vec4(v_fill)); + highp vec4 _335 = vec4(float(v_aa > 0.0)); + result = mix(mix(_303, _303, _335), mix(vec4(_327.x ? b.x : a.x, _327.y ? b.y : a.y, _327.z ? b.z : a.z, _327.w ? b.w : a.w), mix(b, a, vec4(smoothstep(0.0, v_aa, d))), _335), vec4(v_fill)); return result; } + highp vec2 normal_from_heightmap(highp sampler2D tex, highp vec2 uv) + { + highp vec4 _574 = textureOffset(tex, uv, ivec2(0, -1)); + highp float _575 = _574.x; + return vec2(textureOffset(tex, uv, ivec2(-1, 1)).x - _575, textureOffset(tex, uv, ivec2(1)).x - _575); + } + + highp vec4 normal_to_color(highp vec2 n) + { + return vec4((n * 0.5) + vec2(0.5), 1.0, 1.0); + } + highp vec4 shader(highp vec4 color, highp vec2 pos, highp vec2 uv, highp vec4 params) { - highp vec4 _577 = texture(noise_tex, (vec2(uv.x * 5.0, uv.y * 3.75) * 0.5) + vec2(shader_uniforms[0].y)); - highp float _579 = _577.x - 0.5; - highp vec4 c = texture(water_tex, uv + ((vec2(0.001562500023283064365386962890625, 0.00208333344198763370513916015625) * _579) * shader_uniforms[0].x)); - highp vec4 _602; - if (shader_uniforms[0].z > 0.0) + highp vec2 param = uv; + highp vec2 _604 = normal_from_heightmap(noise_tex, param); + highp vec2 param_1 = uv + ((_604 * vec2(0.0062500000931322574615478515625, 0.008333333767950534820556640625)) * 10.0); + highp vec2 _615 = normal_from_heightmap(wavelets_tex, param_1); + highp vec2 param_2 = _604; + highp vec2 param_3 = _615; + highp vec2 _631 = _604 + _615; + highp vec4 c = mix(texture(scene_tex, uv + ((_631 * vec2(0.0062500000931322574615478515625, 0.008333333767950534820556640625)) * 10.0)), vec4(1.0), vec4((length(_631) > 0.20000000298023223876953125) ? 0.100000001490116119384765625 : 0.0)); + highp vec4 _656; + if (shader_uniforms[0].x > 0.0) + { + highp vec2 param_4 = _604; + highp vec2 param_5 = _615; + _656 = mix(normal_to_color(param_4), normal_to_color(param_5), vec4(0.25)); + } + else { - _602 = vec4(_579) + vec4(0.5); + _656 = c; + } + c = _656; + highp vec4 _673; + if (shader_uniforms[0].y > 0.0) + { + _673 = texture(noise_tex, uv); } else { - _602 = c; + _673 = c; } - c = _602; - return _602; + c = _673; + return _673; } void main() { - bool _618 = v_type >= 0.0; - bool _624; - if (_618) + bool _689 = v_type >= 0.0; + bool _695; + if (_689) { - _624 = v_type < 0.00196078442968428134918212890625; + _695 = v_type < 0.00196078442968428134918212890625; } else { - _624 = _618; + _695 = _689; } - bool _627 = v_type > 0.00196078442968428134918212890625; - bool _633; - if (_627) + bool _698 = v_type > 0.00196078442968428134918212890625; + bool _704; + if (_698) { - _633 = v_type < 0.0058823530562222003936767578125; + _704 = v_type < 0.0058823530562222003936767578125; } else { - _633 = _627; + _704 = _698; } - bool _636 = v_type > 0.0058823530562222003936767578125; - bool _642; - if (_636) + bool _707 = v_type > 0.0058823530562222003936767578125; + bool _713; + if (_707) { - _642 = v_type < 0.009803921915590763092041015625; + _713 = v_type < 0.009803921915590763092041015625; } else { - _642 = _636; + _713 = _707; } - bool _645 = v_type > 0.009803921915590763092041015625; - bool _651; - if (_645) + bool _716 = v_type > 0.009803921915590763092041015625; + bool _722; + if (_716) { - _651 = v_type < 0.013725490309298038482666015625; + _722 = v_type < 0.013725490309298038482666015625; } else { - _651 = _645; + _722 = _716; } - bool _654 = v_type > 0.013725490309298038482666015625; - bool _660; - if (_654) + bool _725 = v_type > 0.013725490309298038482666015625; + bool _731; + if (_725) { - _660 = v_type < 0.01764705963432788848876953125; + _731 = v_type < 0.01764705963432788848876953125; } else { - _660 = _654; + _731 = _725; } - bool _663 = v_type > 0.01764705963432788848876953125; - bool _669; - if (_663) + bool _734 = v_type > 0.01764705963432788848876953125; + bool _740; + if (_734) { - _669 = v_type < 0.02156862802803516387939453125; + _740 = v_type < 0.02156862802803516387939453125; } else { - _669 = _663; + _740 = _734; } highp vec4 c = vec4(0.0); - highp vec4 _676; - if (!(_624 && _633)) + highp vec4 _747; + if (!(_695 && _704)) { highp vec2 param = v_uv; highp vec2 param_1 = fs_params[0].xy; highp vec4 param_2 = texture(u_image, smooth_uv(param, param_1)); - _676 = de_gamma(param_2); + _747 = de_gamma(param_2); } else { - _676 = c; + _747 = c; } - c = _676; - highp vec4 _697; - if (_624) + c = _747; + highp vec4 _771; + if (_695) { highp vec4 param_3 = c; highp vec4 param_4 = v_col; highp vec4 param_5 = overlay(param_3, param_4); - _697 = gamma(param_5); + _771 = gamma(param_5); } else { - _697 = c; + _771 = c; } - c = _697; - highp vec4 _713; - if (_633) + c = _771; + highp vec4 _787; + if (_704) { - _713 = v_col * c.w; + _787 = v_col * c.w; } else { - _713 = c; + _787 = c; } - bvec4 _726 = bvec4(_660); - c = vec4(_726.x ? v_col.x : _713.x, _726.y ? v_col.y : _713.y, _726.z ? v_col.z : _713.z, _726.w ? v_col.w : _713.w); + bvec4 _800 = bvec4(_731); + c = vec4(_800.x ? v_col.x : _787.x, _800.y ? v_col.y : _787.y, _800.z ? v_col.z : _787.z, _800.w ? v_col.w : _787.w); highp float d = 0.0; - if (_642) + if (_713) { highp vec2 param_6 = v_pos; highp vec2 param_7 = v_a; highp vec2 param_8 = v_b; highp vec2 param_9 = v_c; - highp float _744 = distance_box(param_6, param_7, param_8, param_9); - d = _744; + highp float _818 = distance_box(param_6, param_7, param_8, param_9); + d = _818; } else { - if (_651) + if (_722) { highp vec2 param_10 = v_pos; highp vec2 param_11 = v_a; highp vec2 param_12 = v_b; - highp float _755 = distance_segment(param_10, param_11, param_12); - d = _755; + highp float _829 = distance_segment(param_10, param_11, param_12); + d = _829; highp vec2 param_13 = v_pos; highp vec2 param_14 = v_b; highp vec2 param_15 = v_c; - d = min(_755, distance_segment(param_13, param_14, param_15)); + d = min(_829, distance_segment(param_13, param_14, param_15)); } else { - if (_669) + if (_740) { highp vec2 param_16 = v_pos; highp vec2 param_17 = v_a; @@ -1620,28 +1734,28 @@ static const char shallow_water_vs_source_glsl300es[1082] = { } } } - highp vec4 _786; - if (((!_624) && (!_633)) && (!_660)) + highp vec4 _860; + if (((!_695) && (!_704)) && (!_731)) { highp vec4 param_20 = c; highp vec4 param_21 = v_col; highp float param_22 = d - v_radius; - highp vec4 _798 = sdf(param_20, param_21, param_22); - _786 = _798; + highp vec4 _872 = sdf(param_20, param_21, param_22); + _860 = _872; } else { - _786 = c; + _860 = c; } - highp vec4 _805 = _786 * v_alpha; - c = _805; - highp vec4 param_23 = _805; + highp vec4 _879 = _860 * v_alpha; + c = _879; + highp vec4 param_23 = _879; highp vec2 param_24 = v_pos; - highp vec2 param_25 = (v_posH + vec2(1.0)) * 0.5; + highp vec2 param_25 = ((v_posH + vec2(1.0)) * 0.5) * vec2(1.0, -1.0); highp vec4 param_26 = v_user; - highp vec4 _821 = shader(param_23, param_24, param_25, param_26); - c = _821; - if (_821.w == 0.0) + highp vec4 _897 = shader(param_23, param_24, param_25, param_26); + c = _897; + if (_897.w == 0.0) { discard; } @@ -1649,606 +1763,660 @@ static const char shallow_water_vs_source_glsl300es[1082] = { } */ -static const char shallow_water_fs_source_glsl300es[9582] = { +static const char shallow_water_fs_source_glsl300es[10441] = { 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x30,0x30,0x20,0x65,0x73,0x0a, 0x70,0x72,0x65,0x63,0x69,0x73,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x64,0x69,0x75,0x6d, 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x3b,0x0a,0x70,0x72,0x65,0x63,0x69,0x73,0x69, 0x6f,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x69,0x6e,0x74,0x3b,0x0a,0x0a,0x75, 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, - 0x34,0x20,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x31,0x5d,0x3b,0x0a, - 0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x34,0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x5f,0x75,0x6e,0x69,0x66,0x6f,0x72, + 0x34,0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x5f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d, + 0x73,0x5b,0x31,0x5d,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x73,0x5f,0x70,0x61,0x72,0x61, 0x6d,0x73,0x5b,0x31,0x5d,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68, 0x69,0x67,0x68,0x70,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x6e, 0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72, 0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32, - 0x44,0x20,0x77,0x61,0x74,0x65,0x72,0x5f,0x74,0x65,0x78,0x3b,0x0a,0x75,0x6e,0x69, - 0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73,0x61,0x6d,0x70,0x6c, - 0x65,0x72,0x32,0x44,0x20,0x75,0x5f,0x69,0x6d,0x61,0x67,0x65,0x3b,0x0a,0x0a,0x69, + 0x44,0x20,0x77,0x61,0x76,0x65,0x6c,0x65,0x74,0x73,0x5f,0x74,0x65,0x78,0x3b,0x0a, + 0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73,0x61, + 0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x73,0x63,0x65,0x6e,0x65,0x5f,0x74,0x65, + 0x78,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x75,0x5f,0x69,0x6d,0x61, + 0x67,0x65,0x3b,0x0a,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3b,0x0a,0x69,0x6e, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x61, + 0x61,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69, + 0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x69, 0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f, - 0x73,0x74,0x72,0x6f,0x6b,0x65,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x61,0x61,0x3b,0x0a,0x6c,0x61,0x79, - 0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30, - 0x29,0x20,0x6f,0x75,0x74,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34, - 0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x3b,0x0a, - 0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76, - 0x5f,0x74,0x79,0x70,0x65,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x32,0x20,0x76,0x5f,0x75,0x76,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x3b,0x0a, - 0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x76,0x5f, - 0x70,0x6f,0x73,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x32,0x20,0x76,0x5f,0x61,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x76,0x65,0x63,0x32,0x20,0x76,0x5f,0x62,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x76,0x5f,0x63,0x3b,0x0a,0x69,0x6e, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x72, - 0x61,0x64,0x69,0x75,0x73,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x3b,0x0a,0x69, - 0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x76,0x5f,0x70, - 0x6f,0x73,0x48,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x34,0x20,0x76,0x5f,0x75,0x73,0x65,0x72,0x3b,0x0a,0x0a,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x5f,0x75,0x76, - 0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x75,0x76,0x2c,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x74,0x65,0x78,0x74,0x75, - 0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x32,0x30,0x34,0x20,0x3d, - 0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x75,0x76,0x20,0x2a,0x20,0x74,0x65,0x78,0x74, - 0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28, - 0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, - 0x6e,0x20,0x28,0x5f,0x32,0x30,0x34,0x20,0x2b,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28, - 0x28,0x75,0x76,0x20,0x2a,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69, - 0x7a,0x65,0x20,0x2b,0x20,0x28,0x2d,0x5f,0x32,0x30,0x34,0x29,0x29,0x20,0x2f,0x20, - 0x66,0x77,0x69,0x64,0x74,0x68,0x28,0x75,0x76,0x20,0x2a,0x20,0x74,0x65,0x78,0x74, - 0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x29,0x2c,0x20,0x76,0x65,0x63,0x32,0x28, - 0x2d,0x30,0x2e,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35,0x29, - 0x29,0x29,0x20,0x2f,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a, - 0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34, - 0x20,0x64,0x65,0x5f,0x67,0x61,0x6d,0x6d,0x61,0x28,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x34,0x20,0x63,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, - 0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x63,0x34,0x28,0x70,0x6f,0x77,0x28,0x61,0x62, - 0x73,0x28,0x63,0x2e,0x78,0x79,0x7a,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x32, - 0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35, - 0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x29,0x29,0x2c,0x20,0x63,0x2e,0x77,0x29,0x3b, - 0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x62,0x61,0x73,0x65,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x62,0x6c,0x65,0x6e,0x64,0x29,0x0a,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, - 0x31,0x30,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x61,0x73, - 0x65,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x30,0x34,0x20,0x3d,0x20,0x28, - 0x32,0x2e,0x30,0x20,0x2a,0x20,0x62,0x61,0x73,0x65,0x29,0x20,0x2a,0x20,0x62,0x6c, - 0x65,0x6e,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, - 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x5f,0x31,0x30,0x34,0x20,0x3d,0x20,0x28,0x28,0x31,0x2e,0x30,0x20,0x2d, - 0x20,0x62,0x61,0x73,0x65,0x29,0x20,0x2a,0x20,0x28,0x2d,0x32,0x2e,0x30,0x29,0x29, - 0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x29, - 0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x31,0x30,0x34,0x3b,0x0a,0x7d, - 0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x6f,0x76,0x65, - 0x72,0x6c,0x61,0x79,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, - 0x62,0x61,0x73,0x65,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, - 0x20,0x62,0x6c,0x65,0x6e,0x64,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20, - 0x3d,0x20,0x62,0x61,0x73,0x65,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x20,0x3d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x2e,0x79,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2e,0x79, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x62,0x61,0x73,0x65, - 0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x62,0x6c, - 0x65,0x6e,0x64,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, - 0x6e,0x20,0x76,0x65,0x63,0x33,0x28,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x70, - 0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20, - 0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x2c,0x20,0x6f,0x76,0x65,0x72,0x6c, - 0x61,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x35,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x34,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x62,0x61,0x73,0x65,0x2c,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x62,0x6c,0x65,0x6e,0x64,0x29,0x0a, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x2e,0x78,0x79, - 0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, - 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x62,0x6c,0x65,0x6e, - 0x64,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, - 0x6e,0x20,0x76,0x65,0x63,0x34,0x28,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x70, - 0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20, - 0x62,0x61,0x73,0x65,0x2e,0x77,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x67,0x61,0x6d,0x6d,0x61,0x28,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x63,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x63,0x34,0x28,0x70,0x6f,0x77, - 0x28,0x61,0x62,0x73,0x28,0x63,0x2e,0x78,0x79,0x7a,0x29,0x2c,0x20,0x76,0x65,0x63, - 0x33,0x28,0x30,0x2e,0x34,0x35,0x34,0x35,0x34,0x35,0x34,0x36,0x38,0x30,0x39,0x31, - 0x39,0x36,0x34,0x37,0x32,0x31,0x36,0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x2c, + 0x66,0x69,0x6c,0x6c,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x3b,0x0a,0x69,0x6e,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x76,0x5f,0x75,0x76,0x3b, + 0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x76, + 0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x32,0x20,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x76,0x5f,0x61,0x3b,0x0a,0x69,0x6e, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x76,0x5f,0x62,0x3b, + 0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x76, + 0x5f,0x63,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x76,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x3b,0x0a,0x69,0x6e,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x61,0x6c, + 0x70,0x68,0x61,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x32,0x20,0x76,0x5f,0x70,0x6f,0x73,0x48,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x76,0x5f,0x75,0x73,0x65,0x72,0x3b, + 0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x73,0x6d,0x6f, + 0x6f,0x74,0x68,0x5f,0x75,0x76,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, + 0x32,0x20,0x75,0x76,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32, + 0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x29,0x0a,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20, + 0x5f,0x32,0x31,0x36,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x75,0x76,0x20, + 0x2a,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x20,0x2b, + 0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x5f,0x32,0x31,0x36,0x20,0x2b,0x20, + 0x63,0x6c,0x61,0x6d,0x70,0x28,0x28,0x75,0x76,0x20,0x2a,0x20,0x74,0x65,0x78,0x74, + 0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x20,0x2b,0x20,0x28,0x2d,0x5f,0x32,0x31, + 0x36,0x29,0x29,0x20,0x2f,0x20,0x66,0x77,0x69,0x64,0x74,0x68,0x28,0x75,0x76,0x20, + 0x2a,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x29,0x2c, + 0x20,0x76,0x65,0x63,0x32,0x28,0x2d,0x30,0x2e,0x35,0x29,0x2c,0x20,0x76,0x65,0x63, + 0x32,0x28,0x30,0x2e,0x35,0x29,0x29,0x29,0x20,0x2f,0x20,0x74,0x65,0x78,0x74,0x75, + 0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x64,0x65,0x5f,0x67,0x61,0x6d,0x6d,0x61,0x28, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x63,0x29,0x0a,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x63,0x34,0x28, + 0x70,0x6f,0x77,0x28,0x61,0x62,0x73,0x28,0x63,0x2e,0x78,0x79,0x7a,0x29,0x2c,0x20, + 0x76,0x65,0x63,0x33,0x28,0x32,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37, + 0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x29,0x29,0x2c, 0x20,0x63,0x2e,0x77,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x32,0x20,0x73,0x6b,0x65,0x77,0x28,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x32,0x20,0x76,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, - 0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x63,0x32,0x28,0x2d,0x76,0x2e,0x79,0x2c,0x20, - 0x76,0x2e,0x78,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x61,0x61, - 0x62,0x62,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x2c, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x68,0x65,0x29,0x0a, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32, - 0x20,0x5f,0x33,0x35,0x37,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x70,0x29,0x20,0x2d, - 0x20,0x68,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, - 0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x6d,0x61,0x78,0x28,0x5f,0x33,0x35,0x37,0x2c, - 0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x30,0x29,0x29,0x29,0x20,0x2b,0x20,0x6d, - 0x69,0x6e,0x28,0x6d,0x61,0x78,0x28,0x5f,0x33,0x35,0x37,0x2e,0x78,0x2c,0x20,0x5f, - 0x33,0x35,0x37,0x2e,0x79,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a, - 0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x69,0x73, - 0x74,0x61,0x6e,0x63,0x65,0x5f,0x62,0x6f,0x78,0x28,0x69,0x6e,0x6f,0x75,0x74,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x2c,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x63,0x2c,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x68,0x65,0x2c,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x76,0x65,0x63,0x32,0x20,0x75,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x20, - 0x3d,0x20,0x75,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x2d,0x3d,0x20,0x63,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d,0x20,0x74,0x72,0x61,0x6e,0x73,0x70,0x6f, - 0x73,0x65,0x28,0x6d,0x61,0x74,0x32,0x28,0x75,0x2c,0x20,0x73,0x6b,0x65,0x77,0x28, - 0x70,0x61,0x72,0x61,0x6d,0x29,0x29,0x29,0x20,0x2a,0x20,0x70,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, - 0x20,0x3d,0x20,0x68,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, - 0x6e,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x61,0x61,0x62,0x62,0x28, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, - 0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x68,0x69,0x67,0x68,0x70, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x61,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x62,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x32,0x35,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x20,0x3d,0x3d,0x20,0x30,0x2e, - 0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x32,0x32,0x35,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x32,0x35,0x20,0x3d, - 0x20,0x61,0x20,0x2f,0x20,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x32,0x32,0x35,0x3b,0x0a,0x7d, - 0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x61, - 0x66,0x65,0x5f,0x6c,0x65,0x6e,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, - 0x32,0x20,0x76,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x33,0x38,0x20,0x3d,0x20,0x64,0x6f, - 0x74,0x28,0x76,0x2c,0x20,0x76,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x34,0x31,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x32,0x33,0x38,0x20,0x3d,0x3d,0x20,0x30, - 0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x5f,0x32,0x34,0x31,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x34,0x31,0x20, - 0x3d,0x20,0x73,0x71,0x72,0x74,0x28,0x5f,0x32,0x33,0x38,0x29,0x3b,0x0a,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x68,0x69, + 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x62,0x61,0x73,0x65,0x2c,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x62,0x6c,0x65,0x6e, + 0x64,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x31,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x66,0x20,0x28,0x62,0x61,0x73,0x65,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x35,0x29,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31, + 0x31,0x36,0x20,0x3d,0x20,0x28,0x32,0x2e,0x30,0x20,0x2a,0x20,0x62,0x61,0x73,0x65, + 0x29,0x20,0x2a,0x20,0x62,0x6c,0x65,0x6e,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x36,0x20,0x3d,0x20,0x28, + 0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x62,0x61,0x73,0x65,0x29,0x20,0x2a,0x20,0x28, + 0x2d,0x32,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20, + 0x62,0x6c,0x65,0x6e,0x64,0x29,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f, - 0x32,0x34,0x31,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x73,0x65,0x67, - 0x6d,0x65,0x6e,0x74,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20, - 0x70,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x61,0x2c, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x62,0x29,0x0a,0x7b, + 0x31,0x31,0x36,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x33,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x33,0x20,0x62,0x61,0x73,0x65,0x2c,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x62,0x6c,0x65,0x6e,0x64,0x29,0x0a,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x2e,0x78,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2e, + 0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x62,0x61,0x73, + 0x65,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x62, + 0x6c,0x65,0x6e,0x64,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20, + 0x3d,0x20,0x62,0x61,0x73,0x65,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x35,0x20,0x3d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x63,0x33,0x28,0x6f,0x76,0x65, + 0x72,0x6c,0x61,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x29,0x2c,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x2c, + 0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x6f,0x76,0x65,0x72,0x6c, + 0x61,0x79,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x62,0x61, + 0x73,0x65,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x62, + 0x6c,0x65,0x6e,0x64,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x62, + 0x61,0x73,0x65,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20, + 0x3d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x63,0x34,0x28,0x6f,0x76,0x65, + 0x72,0x6c,0x61,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x29,0x2c,0x20,0x62,0x61,0x73,0x65,0x2e,0x77,0x29,0x3b,0x0a,0x7d, + 0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x67,0x61,0x6d, + 0x6d,0x61,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x63,0x29, + 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65, + 0x63,0x34,0x28,0x70,0x6f,0x77,0x28,0x61,0x62,0x73,0x28,0x63,0x2e,0x78,0x79,0x7a, + 0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x34,0x35,0x34,0x35,0x34,0x35, + 0x34,0x36,0x38,0x30,0x39,0x31,0x39,0x36,0x34,0x37,0x32,0x31,0x36,0x37,0x39,0x36, + 0x38,0x37,0x35,0x29,0x29,0x2c,0x20,0x63,0x2e,0x77,0x29,0x3b,0x0a,0x7d,0x0a,0x0a, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x73,0x6b,0x65,0x77,0x28, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x76,0x29,0x0a,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x63,0x32,0x28, + 0x2d,0x76,0x2e,0x79,0x2c,0x20,0x76,0x2e,0x78,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68, + 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74,0x61, + 0x6e,0x63,0x65,0x5f,0x61,0x61,0x62,0x62,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x32,0x20,0x70,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, + 0x32,0x20,0x68,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x33,0x36,0x30,0x20,0x3d,0x20,0x61,0x62, + 0x73,0x28,0x70,0x29,0x20,0x2d,0x20,0x68,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72, + 0x65,0x74,0x75,0x72,0x6e,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x6d,0x61,0x78, + 0x28,0x5f,0x33,0x36,0x30,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x30,0x29, + 0x29,0x29,0x20,0x2b,0x20,0x6d,0x69,0x6e,0x28,0x6d,0x61,0x78,0x28,0x5f,0x33,0x36, + 0x30,0x2e,0x78,0x2c,0x20,0x5f,0x33,0x36,0x30,0x2e,0x79,0x29,0x2c,0x20,0x30,0x2e, + 0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x62,0x6f,0x78,0x28, + 0x69,0x6e,0x6f,0x75,0x74,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32, + 0x20,0x70,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x63, + 0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x68,0x65,0x2c, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x75,0x29,0x0a,0x7b, 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20, - 0x5f,0x34,0x30,0x32,0x20,0x3d,0x20,0x62,0x20,0x2d,0x20,0x61,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x34,0x30, - 0x36,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x30,0x36,0x2c,0x20,0x5f,0x34,0x30, - 0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x64,0x6f, - 0x74,0x28,0x5f,0x34,0x30,0x32,0x2c,0x20,0x5f,0x34,0x30,0x32,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x34,0x30,0x36,0x20,0x2d,0x20,0x28, - 0x5f,0x34,0x30,0x32,0x20,0x2a,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x66, - 0x65,0x5f,0x64,0x69,0x76,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x61, - 0x66,0x65,0x5f,0x6c,0x65,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b, - 0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x64,0x65,0x74,0x32,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20, - 0x61,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x62,0x29, - 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x2e, - 0x78,0x20,0x2a,0x20,0x62,0x2e,0x79,0x20,0x2b,0x20,0x28,0x2d,0x28,0x61,0x2e,0x79, - 0x20,0x2a,0x20,0x62,0x2e,0x78,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67, - 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63, - 0x65,0x5f,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x28,0x68,0x69,0x67,0x68,0x70, + 0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x75,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70, + 0x20,0x2d,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d,0x20,0x74, + 0x72,0x61,0x6e,0x73,0x70,0x6f,0x73,0x65,0x28,0x6d,0x61,0x74,0x32,0x28,0x75,0x2c, + 0x20,0x73,0x6b,0x65,0x77,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x29,0x29,0x20,0x2a, + 0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x70,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x68,0x65,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65, + 0x5f,0x61,0x61,0x62,0x62,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68, + 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76, + 0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x61,0x2c,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x62,0x29,0x0a,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x5f,0x32,0x33,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62, + 0x20,0x3d,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x33,0x37,0x20,0x3d,0x20,0x30,0x2e, + 0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, + 0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x5f,0x32,0x33,0x37,0x20,0x3d,0x20,0x61,0x20,0x2f,0x20,0x62,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f, + 0x32,0x33,0x37,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x73,0x61,0x66,0x65,0x5f,0x6c,0x65,0x6e,0x28,0x68,0x69,0x67, + 0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x76,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x35, + 0x30,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x76,0x2c,0x20,0x76,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, + 0x32,0x35,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x32,0x35, + 0x30,0x20,0x3d,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x35,0x33,0x20,0x3d,0x20,0x30, + 0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c, + 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x5f,0x32,0x35,0x33,0x20,0x3d,0x20,0x73,0x71,0x72,0x74,0x28,0x5f,0x32,0x35, + 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, + 0x74,0x75,0x72,0x6e,0x20,0x5f,0x32,0x35,0x33,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69, + 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74,0x61,0x6e, + 0x63,0x65,0x5f,0x73,0x65,0x67,0x6d,0x65,0x6e,0x74,0x28,0x68,0x69,0x67,0x68,0x70, 0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, 0x65,0x63,0x32,0x20,0x61,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, - 0x32,0x20,0x62,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20, - 0x63,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x32,0x20,0x5f,0x34,0x33,0x32,0x20,0x3d,0x20,0x62,0x20,0x2d,0x20,0x61, + 0x32,0x20,0x62,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x34,0x30,0x35,0x20,0x3d,0x20,0x62,0x20,0x2d, + 0x20,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x32,0x20,0x5f,0x34,0x30,0x39,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x61,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x30, + 0x39,0x2c,0x20,0x5f,0x34,0x30,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x30,0x35,0x2c,0x20,0x5f,0x34, + 0x30,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x34, + 0x30,0x39,0x20,0x2d,0x20,0x28,0x5f,0x34,0x30,0x35,0x20,0x2a,0x20,0x63,0x6c,0x61, + 0x6d,0x70,0x28,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x30,0x2e,0x30, + 0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, + 0x75,0x72,0x6e,0x20,0x73,0x61,0x66,0x65,0x5f,0x6c,0x65,0x6e,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x65,0x74,0x32,0x28,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x32,0x20,0x61,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x32,0x20,0x62,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, + 0x75,0x72,0x6e,0x20,0x61,0x2e,0x78,0x20,0x2a,0x20,0x62,0x2e,0x79,0x20,0x2b,0x20, + 0x28,0x2d,0x28,0x61,0x2e,0x79,0x20,0x2a,0x20,0x62,0x2e,0x78,0x29,0x29,0x3b,0x0a, + 0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64, + 0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65, + 0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x2c,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x61,0x2c,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x62,0x2c,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x32,0x20,0x63,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x34,0x33,0x35,0x20,0x3d, + 0x20,0x62,0x20,0x2d,0x20,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x34,0x33,0x39,0x20,0x3d,0x20,0x63,0x20, + 0x2d,0x20,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x32,0x20,0x5f,0x34,0x34,0x33,0x20,0x3d,0x20,0x61,0x20,0x2d,0x20,0x63, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32, - 0x20,0x5f,0x34,0x33,0x36,0x20,0x3d,0x20,0x63,0x20,0x2d,0x20,0x62,0x3b,0x0a,0x20, + 0x20,0x5f,0x34,0x34,0x37,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x61,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x34, - 0x34,0x30,0x20,0x3d,0x20,0x61,0x20,0x2d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x34,0x34,0x34,0x20, - 0x3d,0x20,0x70,0x20,0x2d,0x20,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x34,0x34,0x38,0x20,0x3d,0x20,0x70, - 0x20,0x2d,0x20,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x32,0x20,0x5f,0x34,0x35,0x32,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20, - 0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f, - 0x34,0x34,0x34,0x2c,0x20,0x5f,0x34,0x33,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x33,0x32,0x2c,0x20, - 0x5f,0x34,0x33,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x34,0x36,0x37,0x20,0x3d,0x20,0x5f,0x34,0x34, - 0x34,0x20,0x2d,0x20,0x28,0x5f,0x34,0x33,0x32,0x20,0x2a,0x20,0x63,0x6c,0x61,0x6d, - 0x70,0x28,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c, - 0x20,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20, - 0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x34,0x38,0x2c,0x20,0x5f,0x34,0x33,0x36, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x64,0x6f,0x74, - 0x28,0x5f,0x34,0x33,0x36,0x2c,0x20,0x5f,0x34,0x33,0x36,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x34,0x38, - 0x32,0x20,0x3d,0x20,0x5f,0x34,0x34,0x38,0x20,0x2d,0x20,0x28,0x5f,0x34,0x33,0x36, - 0x20,0x2a,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x66,0x65,0x5f,0x64,0x69, - 0x76,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x33,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f, - 0x34,0x35,0x32,0x2c,0x20,0x5f,0x34,0x34,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x35,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x34,0x30,0x2c,0x20, - 0x5f,0x34,0x34,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x34,0x39,0x37,0x20,0x3d,0x20,0x5f,0x34,0x35, - 0x32,0x20,0x2d,0x20,0x28,0x5f,0x34,0x34,0x30,0x20,0x2a,0x20,0x63,0x6c,0x61,0x6d, - 0x70,0x28,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20,0x30,0x2e, - 0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36, - 0x20,0x3d,0x20,0x5f,0x34,0x33,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20, - 0x3d,0x20,0x5f,0x34,0x34,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x35,0x30,0x33,0x20,0x3d,0x20,0x64, - 0x65,0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20, - 0x5f,0x34,0x34,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x5f, - 0x34,0x33,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20,0x5f, - 0x34,0x34,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x5f, - 0x34,0x33,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x5f, - 0x34,0x35,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x5f, - 0x34,0x34,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x32,0x20,0x5f,0x35,0x33,0x39,0x20,0x3d,0x20,0x6d,0x69,0x6e,0x28,0x6d, - 0x69,0x6e,0x28,0x76,0x65,0x63,0x32,0x28,0x64,0x6f,0x74,0x28,0x5f,0x34,0x36,0x37, - 0x2c,0x20,0x5f,0x34,0x36,0x37,0x29,0x2c,0x20,0x5f,0x35,0x30,0x33,0x20,0x2a,0x20, - 0x64,0x65,0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x39,0x29,0x29,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x64,0x6f, - 0x74,0x28,0x5f,0x34,0x38,0x32,0x2c,0x20,0x5f,0x34,0x38,0x32,0x29,0x2c,0x20,0x5f, - 0x35,0x30,0x33,0x20,0x2a,0x20,0x64,0x65,0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x29,0x29,0x29, - 0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x64,0x6f,0x74,0x28,0x5f,0x34,0x39,0x37,0x2c, - 0x20,0x5f,0x34,0x39,0x37,0x29,0x2c,0x20,0x5f,0x35,0x30,0x33,0x20,0x2a,0x20,0x64, - 0x65,0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x33,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72, - 0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x2d,0x73,0x71,0x72,0x74,0x28,0x5f,0x35,0x33, - 0x39,0x2e,0x78,0x29,0x29,0x20,0x2a,0x20,0x73,0x69,0x67,0x6e,0x28,0x5f,0x35,0x33, - 0x39,0x2e,0x79,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x73,0x64,0x66,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x28, - 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x29,0x0a,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x62,0x73,0x28, - 0x64,0x29,0x20,0x2d,0x20,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3b,0x0a,0x7d, - 0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x73,0x64,0x66, - 0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x61,0x2c,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x62,0x2c,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x29,0x0a,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32, - 0x39,0x31,0x20,0x3d,0x20,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30, - 0x5d,0x2e,0x7a,0x20,0x2a,0x20,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b, - 0x30,0x5d,0x2e,0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x64,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x5f,0x32,0x39,0x35,0x20,0x3d,0x20,0x73,0x64,0x66,0x5f,0x73,0x74,0x72,0x6f, - 0x6b,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62, - 0x76,0x65,0x63,0x34,0x20,0x5f,0x33,0x31,0x30,0x20,0x3d,0x20,0x62,0x76,0x65,0x63, - 0x34,0x28,0x5f,0x32,0x39,0x35,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a, + 0x35,0x31,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x34,0x35,0x35,0x20, + 0x3d,0x20,0x70,0x20,0x2d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d, + 0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x34,0x37,0x2c,0x20,0x5f,0x34,0x33,0x35,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28, + 0x5f,0x34,0x33,0x35,0x2c,0x20,0x5f,0x34,0x33,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x34,0x37,0x30, + 0x20,0x3d,0x20,0x5f,0x34,0x34,0x37,0x20,0x2d,0x20,0x28,0x5f,0x34,0x33,0x35,0x20, + 0x2a,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76, + 0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29, + 0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x35,0x31, + 0x2c,0x20,0x5f,0x34,0x33,0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33, + 0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x33,0x39,0x2c,0x20,0x5f,0x34,0x33, + 0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x32,0x20,0x5f,0x34,0x38,0x35,0x20,0x3d,0x20,0x5f,0x34,0x35,0x31,0x20,0x2d, + 0x20,0x28,0x5f,0x34,0x33,0x39,0x20,0x2a,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73, + 0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20, + 0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d, + 0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x35,0x35,0x2c,0x20,0x5f,0x34,0x34,0x33,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28, + 0x5f,0x34,0x34,0x33,0x2c,0x20,0x5f,0x34,0x34,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x35,0x30,0x30, + 0x20,0x3d,0x20,0x5f,0x34,0x35,0x35,0x20,0x2d,0x20,0x28,0x5f,0x34,0x34,0x33,0x20, + 0x2a,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76, + 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x35,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x34,0x33,0x35,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x34,0x34,0x33,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x35, + 0x30,0x36,0x20,0x3d,0x20,0x64,0x65,0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f,0x34,0x34,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x39,0x20,0x3d,0x20,0x5f,0x34,0x33,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x30,0x20,0x3d,0x20,0x5f,0x34,0x35,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x31,0x20,0x3d,0x20,0x5f,0x34,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x32,0x20,0x3d,0x20,0x5f,0x34,0x35,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x33,0x20,0x3d,0x20,0x5f,0x34,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x35,0x34,0x32,0x20,0x3d, + 0x20,0x6d,0x69,0x6e,0x28,0x6d,0x69,0x6e,0x28,0x76,0x65,0x63,0x32,0x28,0x64,0x6f, + 0x74,0x28,0x5f,0x34,0x37,0x30,0x2c,0x20,0x5f,0x34,0x37,0x30,0x29,0x2c,0x20,0x5f, + 0x35,0x30,0x36,0x20,0x2a,0x20,0x64,0x65,0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x29,0x29,0x2c,0x20,0x76, + 0x65,0x63,0x32,0x28,0x64,0x6f,0x74,0x28,0x5f,0x34,0x38,0x35,0x2c,0x20,0x5f,0x34, + 0x38,0x35,0x29,0x2c,0x20,0x5f,0x35,0x30,0x36,0x20,0x2a,0x20,0x64,0x65,0x74,0x32, + 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x31,0x29,0x29,0x29,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x64,0x6f,0x74, + 0x28,0x5f,0x35,0x30,0x30,0x2c,0x20,0x5f,0x35,0x30,0x30,0x29,0x2c,0x20,0x5f,0x35, + 0x30,0x36,0x20,0x2a,0x20,0x64,0x65,0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x29,0x29,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x2d,0x73,0x71, + 0x72,0x74,0x28,0x5f,0x35,0x34,0x32,0x2e,0x78,0x29,0x29,0x20,0x2a,0x20,0x73,0x69, + 0x67,0x6e,0x28,0x5f,0x35,0x34,0x32,0x2e,0x79,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68, + 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x64,0x66,0x5f,0x73, + 0x74,0x72,0x6f,0x6b,0x65,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x64,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, + 0x6e,0x20,0x61,0x62,0x73,0x28,0x64,0x29,0x20,0x2d,0x20,0x76,0x5f,0x73,0x74,0x72, + 0x6f,0x6b,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x34,0x20,0x73,0x64,0x66,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, + 0x34,0x20,0x61,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20, + 0x62,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64, + 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x64,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x33, + 0x30,0x33,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x62,0x2c,0x20,0x61,0x2c,0x20,0x76, + 0x65,0x63,0x34,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30, + 0x2e,0x30,0x2c,0x20,0x76,0x5f,0x61,0x61,0x2c,0x20,0x73,0x64,0x66,0x5f,0x73,0x74, + 0x72,0x6f,0x6b,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x29,0x29,0x29,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x62,0x76,0x65,0x63,0x34,0x20,0x5f,0x33,0x32,0x37,0x20,0x3d, 0x20,0x62,0x76,0x65,0x63,0x34,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x64,0x2c,0x20, 0x2d,0x31,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x20,0x3c,0x3d,0x20,0x30,0x2e, 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x34,0x20,0x5f,0x33,0x33,0x34,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x76, - 0x5f,0x61,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74, - 0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x34,0x28, - 0x5f,0x33,0x31,0x30,0x2e,0x78,0x20,0x3f,0x20,0x62,0x2e,0x78,0x20,0x3a,0x20,0x61, - 0x2e,0x78,0x2c,0x20,0x5f,0x33,0x31,0x30,0x2e,0x79,0x20,0x3f,0x20,0x62,0x2e,0x79, - 0x20,0x3a,0x20,0x61,0x2e,0x79,0x2c,0x20,0x5f,0x33,0x31,0x30,0x2e,0x7a,0x20,0x3f, - 0x20,0x62,0x2e,0x7a,0x20,0x3a,0x20,0x61,0x2e,0x7a,0x2c,0x20,0x5f,0x33,0x31,0x30, - 0x2e,0x77,0x20,0x3f,0x20,0x62,0x2e,0x77,0x20,0x3a,0x20,0x61,0x2e,0x77,0x29,0x2c, - 0x20,0x6d,0x69,0x78,0x28,0x62,0x2c,0x20,0x61,0x2c,0x20,0x76,0x65,0x63,0x34,0x28, - 0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x2c,0x20, - 0x5f,0x32,0x39,0x31,0x2c,0x20,0x5f,0x32,0x39,0x35,0x29,0x29,0x29,0x2c,0x20,0x5f, - 0x33,0x33,0x34,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x34,0x28,0x5f, - 0x33,0x32,0x37,0x2e,0x78,0x20,0x3f,0x20,0x62,0x2e,0x78,0x20,0x3a,0x20,0x61,0x2e, - 0x78,0x2c,0x20,0x5f,0x33,0x32,0x37,0x2e,0x79,0x20,0x3f,0x20,0x62,0x2e,0x79,0x20, - 0x3a,0x20,0x61,0x2e,0x79,0x2c,0x20,0x5f,0x33,0x32,0x37,0x2e,0x7a,0x20,0x3f,0x20, - 0x62,0x2e,0x7a,0x20,0x3a,0x20,0x61,0x2e,0x7a,0x2c,0x20,0x5f,0x33,0x32,0x37,0x2e, - 0x77,0x20,0x3f,0x20,0x62,0x2e,0x77,0x20,0x3a,0x20,0x61,0x2e,0x77,0x29,0x2c,0x20, - 0x6d,0x69,0x78,0x28,0x62,0x2c,0x20,0x61,0x2c,0x20,0x76,0x65,0x63,0x34,0x28,0x73, - 0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f, - 0x32,0x39,0x31,0x2c,0x20,0x64,0x29,0x29,0x29,0x2c,0x20,0x5f,0x33,0x33,0x34,0x29, - 0x2c,0x20,0x76,0x65,0x63,0x34,0x28,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x29,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75, - 0x6c,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, - 0x34,0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x34,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x6f,0x73,0x2c,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x76,0x65,0x63,0x32,0x20,0x75,0x76,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x29,0x0a,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x35, - 0x37,0x37,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x6e,0x6f,0x69, - 0x73,0x65,0x5f,0x74,0x65,0x78,0x2c,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x75,0x76, - 0x2e,0x78,0x20,0x2a,0x20,0x35,0x2e,0x30,0x2c,0x20,0x75,0x76,0x2e,0x79,0x20,0x2a, - 0x20,0x33,0x2e,0x37,0x35,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20, - 0x76,0x65,0x63,0x32,0x28,0x73,0x68,0x61,0x64,0x65,0x72,0x5f,0x75,0x6e,0x69,0x66, - 0x6f,0x72,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x35,0x37, - 0x39,0x20,0x3d,0x20,0x5f,0x35,0x37,0x37,0x2e,0x78,0x20,0x2d,0x20,0x30,0x2e,0x35, + 0x63,0x34,0x20,0x5f,0x33,0x33,0x35,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x66, + 0x6c,0x6f,0x61,0x74,0x28,0x76,0x5f,0x61,0x61,0x20,0x3e,0x20,0x30,0x2e,0x30,0x29, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20, + 0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x5f,0x33,0x30,0x33,0x2c,0x20,0x5f,0x33, + 0x30,0x33,0x2c,0x20,0x5f,0x33,0x33,0x35,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x76, + 0x65,0x63,0x34,0x28,0x5f,0x33,0x32,0x37,0x2e,0x78,0x20,0x3f,0x20,0x62,0x2e,0x78, + 0x20,0x3a,0x20,0x61,0x2e,0x78,0x2c,0x20,0x5f,0x33,0x32,0x37,0x2e,0x79,0x20,0x3f, + 0x20,0x62,0x2e,0x79,0x20,0x3a,0x20,0x61,0x2e,0x79,0x2c,0x20,0x5f,0x33,0x32,0x37, + 0x2e,0x7a,0x20,0x3f,0x20,0x62,0x2e,0x7a,0x20,0x3a,0x20,0x61,0x2e,0x7a,0x2c,0x20, + 0x5f,0x33,0x32,0x37,0x2e,0x77,0x20,0x3f,0x20,0x62,0x2e,0x77,0x20,0x3a,0x20,0x61, + 0x2e,0x77,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x62,0x2c,0x20,0x61,0x2c,0x20,0x76, + 0x65,0x63,0x34,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30, + 0x2e,0x30,0x2c,0x20,0x76,0x5f,0x61,0x61,0x2c,0x20,0x64,0x29,0x29,0x29,0x2c,0x20, + 0x5f,0x33,0x33,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x34,0x28,0x76,0x5f,0x66,0x69, + 0x6c,0x6c,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, + 0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x66,0x72, + 0x6f,0x6d,0x5f,0x68,0x65,0x69,0x67,0x68,0x74,0x6d,0x61,0x70,0x28,0x68,0x69,0x67, + 0x68,0x70,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x74,0x65,0x78, + 0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x75,0x76,0x29, + 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, + 0x34,0x20,0x5f,0x35,0x37,0x34,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, + 0x4f,0x66,0x66,0x73,0x65,0x74,0x28,0x74,0x65,0x78,0x2c,0x20,0x75,0x76,0x2c,0x20, + 0x69,0x76,0x65,0x63,0x32,0x28,0x30,0x2c,0x20,0x2d,0x31,0x29,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, + 0x35,0x37,0x35,0x20,0x3d,0x20,0x5f,0x35,0x37,0x34,0x2e,0x78,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x63,0x32,0x28,0x74,0x65, + 0x78,0x74,0x75,0x72,0x65,0x4f,0x66,0x66,0x73,0x65,0x74,0x28,0x74,0x65,0x78,0x2c, + 0x20,0x75,0x76,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x2d,0x31,0x2c,0x20,0x31, + 0x29,0x29,0x2e,0x78,0x20,0x2d,0x20,0x5f,0x35,0x37,0x35,0x2c,0x20,0x74,0x65,0x78, + 0x74,0x75,0x72,0x65,0x4f,0x66,0x66,0x73,0x65,0x74,0x28,0x74,0x65,0x78,0x2c,0x20, + 0x75,0x76,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x31,0x29,0x29,0x2e,0x78,0x20, + 0x2d,0x20,0x5f,0x35,0x37,0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x74,0x6f, + 0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, + 0x32,0x20,0x6e,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, + 0x6e,0x20,0x76,0x65,0x63,0x34,0x28,0x28,0x6e,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29, + 0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35,0x29,0x2c,0x20,0x31,0x2e, + 0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x28,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x6f,0x73,0x2c,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x75,0x76,0x2c,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x73, + 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x75,0x76,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x36, + 0x30,0x34,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x66,0x72,0x6f,0x6d, + 0x5f,0x68,0x65,0x69,0x67,0x68,0x74,0x6d,0x61,0x70,0x28,0x6e,0x6f,0x69,0x73,0x65, + 0x5f,0x74,0x65,0x78,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x75,0x76,0x20,0x2b,0x20,0x28,0x28,0x5f,0x36, + 0x30,0x34,0x20,0x2a,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x30,0x30,0x36,0x32, + 0x35,0x30,0x30,0x30,0x30,0x30,0x39,0x33,0x31,0x33,0x32,0x32,0x35,0x37,0x34,0x36, + 0x31,0x35,0x34,0x37,0x38,0x35,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30, + 0x30,0x38,0x33,0x33,0x33,0x33,0x33,0x33,0x37,0x36,0x37,0x39,0x35,0x30,0x35,0x33, + 0x34,0x38,0x32,0x30,0x35,0x35,0x36,0x36,0x34,0x30,0x36,0x32,0x35,0x29,0x29,0x20, + 0x2a,0x20,0x31,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x36,0x31,0x35,0x20,0x3d,0x20,0x6e, + 0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x68,0x65,0x69,0x67,0x68, + 0x74,0x6d,0x61,0x70,0x28,0x77,0x61,0x76,0x65,0x6c,0x65,0x74,0x73,0x5f,0x74,0x65, + 0x78,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x36,0x30,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x33,0x20,0x3d,0x20,0x5f,0x36,0x31,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x36,0x33,0x31,0x20,0x3d, + 0x20,0x5f,0x36,0x30,0x34,0x20,0x2b,0x20,0x5f,0x36,0x31,0x35,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x63,0x20,0x3d, + 0x20,0x6d,0x69,0x78,0x28,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x73,0x63,0x65, + 0x6e,0x65,0x5f,0x74,0x65,0x78,0x2c,0x20,0x75,0x76,0x20,0x2b,0x20,0x28,0x28,0x5f, + 0x36,0x33,0x31,0x20,0x2a,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x30,0x30,0x36, + 0x32,0x35,0x30,0x30,0x30,0x30,0x30,0x39,0x33,0x31,0x33,0x32,0x32,0x35,0x37,0x34, + 0x36,0x31,0x35,0x34,0x37,0x38,0x35,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e, + 0x30,0x30,0x38,0x33,0x33,0x33,0x33,0x33,0x33,0x37,0x36,0x37,0x39,0x35,0x30,0x35, + 0x33,0x34,0x38,0x32,0x30,0x35,0x35,0x36,0x36,0x34,0x30,0x36,0x32,0x35,0x29,0x29, + 0x20,0x2a,0x20,0x31,0x30,0x2e,0x30,0x29,0x29,0x2c,0x20,0x76,0x65,0x63,0x34,0x28, + 0x31,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x34,0x28,0x28,0x6c,0x65,0x6e,0x67, + 0x74,0x68,0x28,0x5f,0x36,0x33,0x31,0x29,0x20,0x3e,0x20,0x30,0x2e,0x32,0x30,0x30, + 0x30,0x30,0x30,0x30,0x30,0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37, + 0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x29,0x20,0x3f,0x20,0x30,0x2e,0x31,0x30,0x30, + 0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33, + 0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x20,0x3a,0x20,0x30,0x2e,0x30,0x29,0x29, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34, - 0x20,0x63,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x77,0x61,0x74, - 0x65,0x72,0x5f,0x74,0x65,0x78,0x2c,0x20,0x75,0x76,0x20,0x2b,0x20,0x28,0x28,0x76, - 0x65,0x63,0x32,0x28,0x30,0x2e,0x30,0x30,0x31,0x35,0x36,0x32,0x35,0x30,0x30,0x30, - 0x32,0x33,0x32,0x38,0x33,0x30,0x36,0x34,0x33,0x36,0x35,0x33,0x38,0x36,0x39,0x36, - 0x32,0x38,0x39,0x30,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x30,0x32,0x30,0x38, - 0x33,0x33,0x33,0x33,0x34,0x34,0x31,0x39,0x38,0x37,0x36,0x33,0x33,0x37,0x30,0x35, - 0x31,0x33,0x39,0x31,0x36,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2a,0x20,0x5f, - 0x35,0x37,0x39,0x29,0x20,0x2a,0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x5f,0x75,0x6e, - 0x69,0x66,0x6f,0x72,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78,0x29,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x36, - 0x30,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x64, - 0x65,0x72,0x5f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x7a, - 0x20,0x3e,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x30,0x32,0x20,0x3d,0x20,0x76,0x65,0x63, - 0x34,0x28,0x5f,0x35,0x37,0x39,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x34,0x28,0x30, - 0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, - 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x5f,0x36,0x30,0x32,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x36,0x30,0x32,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x36,0x30,0x32,0x3b, - 0x0a,0x7d,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x31,0x38,0x20, - 0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x30,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x32,0x34,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x31,0x38,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x32,0x34, - 0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30, - 0x31,0x39,0x36,0x30,0x37,0x38,0x34,0x34,0x32,0x39,0x36,0x38,0x34,0x32,0x38,0x31, - 0x33,0x34,0x39,0x31,0x38,0x32,0x31,0x32,0x38,0x39,0x30,0x36,0x32,0x35,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x32, - 0x34,0x20,0x3d,0x20,0x5f,0x36,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x32,0x37,0x20,0x3d,0x20, - 0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x31,0x39,0x36, - 0x30,0x37,0x38,0x34,0x34,0x32,0x39,0x36,0x38,0x34,0x32,0x38,0x31,0x33,0x34,0x39, - 0x31,0x38,0x32,0x31,0x32,0x38,0x39,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x33,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x66,0x20,0x28,0x5f,0x36,0x32,0x37,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x33,0x33,0x20,0x3d,0x20,0x76, - 0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x35,0x38,0x38,0x32, - 0x33,0x35,0x33,0x30,0x35,0x36,0x32,0x32,0x32,0x32,0x30,0x30,0x33,0x39,0x33,0x36, - 0x37,0x36,0x37,0x35,0x37,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, + 0x20,0x5f,0x36,0x35,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73, + 0x68,0x61,0x64,0x65,0x72,0x5f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x5b,0x30, + 0x5d,0x2e,0x78,0x20,0x3e,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x36, + 0x30,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d, + 0x20,0x5f,0x36,0x31,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, + 0x36,0x35,0x36,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c, + 0x5f,0x74,0x6f,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x34,0x29,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x74,0x6f,0x5f,0x63,0x6f, + 0x6c,0x6f,0x72,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20,0x76,0x65, + 0x63,0x34,0x28,0x30,0x2e,0x32,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, 0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x33,0x33,0x20,0x3d,0x20,0x5f, - 0x36,0x32,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62, - 0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x33,0x36,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70, - 0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x35,0x38,0x38,0x32,0x33,0x35,0x33,0x30, - 0x35,0x36,0x32,0x32,0x32,0x32,0x30,0x30,0x33,0x39,0x33,0x36,0x37,0x36,0x37,0x35, - 0x37,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20, - 0x5f,0x36,0x34,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36, - 0x33,0x36,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x5f,0x36,0x34,0x32,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20, - 0x3c,0x20,0x30,0x2e,0x30,0x30,0x39,0x38,0x30,0x33,0x39,0x32,0x31,0x39,0x31,0x35, - 0x35,0x39,0x30,0x37,0x36,0x33,0x30,0x39,0x32,0x30,0x34,0x31,0x30,0x31,0x35,0x36, - 0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c, - 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x36,0x34,0x32,0x20,0x3d,0x20,0x5f,0x36,0x33,0x36,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x34, - 0x35,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30, - 0x30,0x39,0x38,0x30,0x33,0x39,0x32,0x31,0x39,0x31,0x35,0x35,0x39,0x30,0x37,0x36, - 0x33,0x30,0x39,0x32,0x30,0x34,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x35,0x31,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x34,0x35,0x29,0x0a,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x35,0x31,0x20,0x3d, - 0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x31,0x33,0x37, - 0x32,0x35,0x34,0x39,0x30,0x33,0x30,0x39,0x32,0x39,0x38,0x30,0x33,0x38,0x34,0x38, - 0x32,0x36,0x36,0x36,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x35,0x36,0x20,0x3d,0x20,0x63, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20, + 0x5f,0x36,0x35,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x76,0x65,0x63,0x34,0x20,0x5f,0x36,0x37,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x66,0x20,0x28,0x73,0x68,0x61,0x64,0x65,0x72,0x5f,0x75,0x6e,0x69,0x66,0x6f,0x72, + 0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x79,0x20,0x3e,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x37, + 0x33,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x6e,0x6f,0x69,0x73, + 0x65,0x5f,0x74,0x65,0x78,0x2c,0x20,0x75,0x76,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x35,0x31,0x20,0x3d,0x20, - 0x5f,0x36,0x34,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x35,0x34,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79, - 0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x31,0x33,0x37,0x32,0x35,0x34,0x39,0x30, - 0x33,0x30,0x39,0x32,0x39,0x38,0x30,0x33,0x38,0x34,0x38,0x32,0x36,0x36,0x36,0x30, - 0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20, - 0x5f,0x36,0x36,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36, - 0x35,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x5f,0x36,0x36,0x30,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20, - 0x3c,0x20,0x30,0x2e,0x30,0x31,0x37,0x36,0x34,0x37,0x30,0x35,0x39,0x36,0x33,0x34, - 0x33,0x32,0x37,0x38,0x38,0x38,0x34,0x38,0x38,0x37,0x36,0x39,0x35,0x33,0x31,0x32, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x37,0x33,0x20,0x3d,0x20, + 0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d, + 0x20,0x5f,0x36,0x37,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, + 0x6e,0x20,0x5f,0x36,0x37,0x33,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20, + 0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f, + 0x6c,0x20,0x5f,0x36,0x38,0x39,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20, + 0x3e,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, + 0x20,0x5f,0x36,0x39,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, + 0x36,0x38,0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x5f,0x36,0x39,0x35,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65, + 0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x31,0x39,0x36,0x30,0x37,0x38,0x34,0x34,0x32, + 0x39,0x36,0x38,0x34,0x32,0x38,0x31,0x33,0x34,0x39,0x31,0x38,0x32,0x31,0x32,0x38, + 0x39,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x5f,0x36,0x39,0x35,0x20,0x3d,0x20,0x5f,0x36,0x38,0x39,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20, + 0x5f,0x36,0x39,0x38,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20, + 0x30,0x2e,0x30,0x30,0x31,0x39,0x36,0x30,0x37,0x38,0x34,0x34,0x32,0x39,0x36,0x38, + 0x34,0x32,0x38,0x31,0x33,0x34,0x39,0x31,0x38,0x32,0x31,0x32,0x38,0x39,0x30,0x36, + 0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x30, + 0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x39,0x38,0x29, + 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, + 0x37,0x30,0x34,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30, + 0x2e,0x30,0x30,0x35,0x38,0x38,0x32,0x33,0x35,0x33,0x30,0x35,0x36,0x32,0x32,0x32, + 0x32,0x30,0x30,0x33,0x39,0x33,0x36,0x37,0x36,0x37,0x35,0x37,0x38,0x31,0x32,0x35, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, + 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, + 0x37,0x30,0x34,0x20,0x3d,0x20,0x5f,0x36,0x39,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x30,0x37,0x20, + 0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x35, + 0x38,0x38,0x32,0x33,0x35,0x33,0x30,0x35,0x36,0x32,0x32,0x32,0x32,0x30,0x30,0x33, + 0x39,0x33,0x36,0x37,0x36,0x37,0x35,0x37,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x31,0x33,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x30,0x37,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x31,0x33,0x20,0x3d,0x20, + 0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x39,0x38,0x30, + 0x33,0x39,0x32,0x31,0x39,0x31,0x35,0x35,0x39,0x30,0x37,0x36,0x33,0x30,0x39,0x32, + 0x30,0x34,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x31,0x33,0x20,0x3d,0x20,0x5f, + 0x37,0x30,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62, + 0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x31,0x36,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70, + 0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x39,0x38,0x30,0x33,0x39,0x32,0x31,0x39, + 0x31,0x35,0x35,0x39,0x30,0x37,0x36,0x33,0x30,0x39,0x32,0x30,0x34,0x31,0x30,0x31, + 0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f, + 0x37,0x32,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x31, + 0x36,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x5f,0x37,0x32,0x32,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c, + 0x20,0x30,0x2e,0x30,0x31,0x33,0x37,0x32,0x35,0x34,0x39,0x30,0x33,0x30,0x39,0x32, + 0x39,0x38,0x30,0x33,0x38,0x34,0x38,0x32,0x36,0x36,0x36,0x30,0x31,0x35,0x36,0x32, 0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, 0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x5f,0x36,0x36,0x30,0x20,0x3d,0x20,0x5f,0x36,0x35,0x34,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x36,0x33, + 0x5f,0x37,0x32,0x32,0x20,0x3d,0x20,0x5f,0x37,0x31,0x36,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x32,0x35, 0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x31, - 0x37,0x36,0x34,0x37,0x30,0x35,0x39,0x36,0x33,0x34,0x33,0x32,0x37,0x38,0x38,0x38, - 0x34,0x38,0x38,0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x36,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x66,0x20,0x28,0x5f,0x36,0x36,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x36,0x39,0x20,0x3d,0x20,0x76, - 0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x32,0x31,0x35,0x36,0x38, - 0x36,0x32,0x38,0x30,0x32,0x38,0x30,0x33,0x35,0x31,0x36,0x33,0x38,0x37,0x39,0x33, - 0x39,0x34,0x35,0x33,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x36,0x39,0x20,0x3d,0x20,0x5f,0x36,0x36, - 0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x63,0x20,0x3d,0x20,0x76,0x65,0x63,0x34, - 0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x36,0x37,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x66,0x20,0x28,0x21,0x28,0x5f,0x36,0x32,0x34,0x20,0x26,0x26,0x20,0x5f,0x36, - 0x33,0x33,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x20,0x3d,0x20,0x76,0x5f,0x75,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x66,0x73,0x5f,0x70,0x61,0x72,0x61, - 0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x75, - 0x5f,0x69,0x6d,0x61,0x67,0x65,0x2c,0x20,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x5f,0x75, - 0x76,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x37,0x36, - 0x20,0x3d,0x20,0x64,0x65,0x5f,0x67,0x61,0x6d,0x6d,0x61,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x5f,0x36,0x37,0x36,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x36,0x37,0x36,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20, - 0x5f,0x36,0x39,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36, - 0x32,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x6f,0x76,0x65,0x72,0x6c, - 0x61,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36, - 0x39,0x37,0x20,0x3d,0x20,0x67,0x61,0x6d,0x6d,0x61,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, - 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x5f,0x36,0x39,0x37,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x36,0x39,0x37,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f, - 0x37,0x31,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x33, - 0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x37,0x31,0x33,0x20,0x3d,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x20,0x2a,0x20, - 0x63,0x2e,0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, - 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x5f,0x37,0x31,0x33,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x76,0x65,0x63,0x34,0x20,0x5f,0x37,0x32,0x36, - 0x20,0x3d,0x20,0x62,0x76,0x65,0x63,0x34,0x28,0x5f,0x36,0x36,0x30,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x5f,0x37,0x32, - 0x36,0x2e,0x78,0x20,0x3f,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x2e,0x78,0x20,0x3a,0x20, - 0x5f,0x37,0x31,0x33,0x2e,0x78,0x2c,0x20,0x5f,0x37,0x32,0x36,0x2e,0x79,0x20,0x3f, - 0x20,0x76,0x5f,0x63,0x6f,0x6c,0x2e,0x79,0x20,0x3a,0x20,0x5f,0x37,0x31,0x33,0x2e, - 0x79,0x2c,0x20,0x5f,0x37,0x32,0x36,0x2e,0x7a,0x20,0x3f,0x20,0x76,0x5f,0x63,0x6f, - 0x6c,0x2e,0x7a,0x20,0x3a,0x20,0x5f,0x37,0x31,0x33,0x2e,0x7a,0x2c,0x20,0x5f,0x37, - 0x32,0x36,0x2e,0x77,0x20,0x3f,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x2e,0x77,0x20,0x3a, - 0x20,0x5f,0x37,0x31,0x33,0x2e,0x77,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x20,0x3d,0x20,0x30,0x2e, - 0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x34,0x32,0x29, - 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x36,0x20,0x3d,0x20,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x76,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x76,0x5f,0x62,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, - 0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x76,0x5f,0x63,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37,0x34,0x34,0x20,0x3d,0x20,0x64,0x69,0x73,0x74, - 0x61,0x6e,0x63,0x65,0x5f,0x62,0x6f,0x78,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d,0x20,0x5f,0x37,0x34,0x34,0x3b,0x0a, + 0x33,0x37,0x32,0x35,0x34,0x39,0x30,0x33,0x30,0x39,0x32,0x39,0x38,0x30,0x33,0x38, + 0x34,0x38,0x32,0x36,0x36,0x36,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x33,0x31,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x32,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x33,0x31,0x20,0x3d,0x20, + 0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x31,0x37,0x36,0x34, + 0x37,0x30,0x35,0x39,0x36,0x33,0x34,0x33,0x32,0x37,0x38,0x38,0x38,0x34,0x38,0x38, + 0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x33,0x31,0x20,0x3d,0x20,0x5f,0x37, + 0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f, + 0x6f,0x6c,0x20,0x5f,0x37,0x33,0x34,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65, + 0x20,0x3e,0x20,0x30,0x2e,0x30,0x31,0x37,0x36,0x34,0x37,0x30,0x35,0x39,0x36,0x33, + 0x34,0x33,0x32,0x37,0x38,0x38,0x38,0x34,0x38,0x38,0x37,0x36,0x39,0x35,0x33,0x31, + 0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x34, + 0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x33,0x34,0x29, + 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, + 0x37,0x34,0x30,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30, + 0x2e,0x30,0x32,0x31,0x35,0x36,0x38,0x36,0x32,0x38,0x30,0x32,0x38,0x30,0x33,0x35, + 0x31,0x36,0x33,0x38,0x37,0x39,0x33,0x39,0x34,0x35,0x33,0x31,0x32,0x35,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20, - 0x28,0x5f,0x36,0x35,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30, - 0x20,0x3d,0x20,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x34, + 0x30,0x20,0x3d,0x20,0x5f,0x37,0x33,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x63, + 0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x37,0x34, + 0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x5f,0x36,0x39, + 0x35,0x20,0x26,0x26,0x20,0x5f,0x37,0x30,0x34,0x29,0x29,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x76,0x5f,0x75, + 0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20, + 0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78,0x79,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x74,0x65, + 0x78,0x74,0x75,0x72,0x65,0x28,0x75,0x5f,0x69,0x6d,0x61,0x67,0x65,0x2c,0x20,0x73, + 0x6d,0x6f,0x6f,0x74,0x68,0x5f,0x75,0x76,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x5f,0x37,0x34,0x37,0x20,0x3d,0x20,0x64,0x65,0x5f,0x67,0x61,0x6d, + 0x6d,0x61,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x34,0x37,0x20,0x3d, + 0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x20, + 0x3d,0x20,0x5f,0x37,0x34,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x37,0x37,0x31,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x39,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x63,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x76,0x5f, + 0x63,0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20, + 0x3d,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x37,0x31,0x20,0x3d,0x20,0x67,0x61,0x6d,0x6d, + 0x61,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x37,0x31,0x20,0x3d,0x20, + 0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d, + 0x20,0x5f,0x37,0x37,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x37,0x38,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x37,0x30,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x38,0x37,0x20,0x3d,0x20,0x76, + 0x5f,0x63,0x6f,0x6c,0x20,0x2a,0x20,0x63,0x2e,0x77,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x38,0x37,0x20,0x3d,0x20, + 0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x76,0x65, + 0x63,0x34,0x20,0x5f,0x38,0x30,0x30,0x20,0x3d,0x20,0x62,0x76,0x65,0x63,0x34,0x28, + 0x5f,0x37,0x33,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x76, + 0x65,0x63,0x34,0x28,0x5f,0x38,0x30,0x30,0x2e,0x78,0x20,0x3f,0x20,0x76,0x5f,0x63, + 0x6f,0x6c,0x2e,0x78,0x20,0x3a,0x20,0x5f,0x37,0x38,0x37,0x2e,0x78,0x2c,0x20,0x5f, + 0x38,0x30,0x30,0x2e,0x79,0x20,0x3f,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x2e,0x79,0x20, + 0x3a,0x20,0x5f,0x37,0x38,0x37,0x2e,0x79,0x2c,0x20,0x5f,0x38,0x30,0x30,0x2e,0x7a, + 0x20,0x3f,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x2e,0x7a,0x20,0x3a,0x20,0x5f,0x37,0x38, + 0x37,0x2e,0x7a,0x2c,0x20,0x5f,0x38,0x30,0x30,0x2e,0x77,0x20,0x3f,0x20,0x76,0x5f, + 0x63,0x6f,0x6c,0x2e,0x77,0x20,0x3a,0x20,0x5f,0x37,0x38,0x37,0x2e,0x77,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x64,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x5f,0x37,0x31,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x76,0x5f,0x61,0x3b, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x76,0x5f,0x70,0x6f,0x73, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x76, + 0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d, + 0x20,0x76,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39, + 0x20,0x3d,0x20,0x76,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x38,0x31,0x38, + 0x20,0x3d,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x62,0x6f,0x78,0x28, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d, + 0x20,0x5f,0x38,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x32,0x32,0x29,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20,0x76,0x5f,0x70,0x6f,0x73,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32, - 0x20,0x3d,0x20,0x76,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x5f,0x37,0x35,0x35,0x20,0x3d,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f, - 0x73,0x65,0x67,0x6d,0x65,0x6e,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x64,0x20,0x3d,0x20,0x5f,0x37,0x35,0x35,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x76, - 0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x76,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x20,0x3d,0x20,0x76, - 0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x64,0x20,0x3d,0x20,0x6d,0x69,0x6e,0x28,0x5f,0x37,0x35,0x35,0x2c,0x20,0x64,0x69, - 0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x73,0x65,0x67,0x6d,0x65,0x6e,0x74,0x28,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x29,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x5f,0x36,0x36,0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31, + 0x20,0x3d,0x20,0x76,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x20,0x3d,0x20,0x76,0x5f,0x70,0x6f,0x73,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x76,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20, - 0x3d,0x20,0x76,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, - 0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x20,0x3d,0x20,0x76,0x5f,0x63, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x64,0x20,0x3d,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x74, - 0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x37, - 0x38,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x28,0x21,0x5f, - 0x36,0x32,0x34,0x29,0x20,0x26,0x26,0x20,0x28,0x21,0x5f,0x36,0x33,0x33,0x29,0x29, - 0x20,0x26,0x26,0x20,0x28,0x21,0x5f,0x36,0x36,0x30,0x29,0x29,0x0a,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20,0x3d, - 0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x20, - 0x3d,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20,0x64,0x20,0x2d,0x20,0x76,0x5f,0x72,0x61, - 0x64,0x69,0x75,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x37,0x39,0x38,0x20,0x3d,0x20, - 0x73,0x64,0x66,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x32,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x38,0x36,0x20, - 0x3d,0x20,0x5f,0x37,0x39,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x38,0x36,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x34,0x20,0x5f,0x38,0x30,0x35,0x20,0x3d,0x20,0x5f,0x37,0x38,0x36,0x20, - 0x2a,0x20,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63, - 0x20,0x3d,0x20,0x5f,0x38,0x30,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33, - 0x20,0x3d,0x20,0x5f,0x38,0x30,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34, - 0x20,0x3d,0x20,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, - 0x35,0x20,0x3d,0x20,0x28,0x76,0x5f,0x70,0x6f,0x73,0x48,0x20,0x2b,0x20,0x76,0x65, - 0x63,0x32,0x28,0x31,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x3b,0x0a, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x76,0x5f,0x62,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x38,0x32,0x39,0x20,0x3d,0x20,0x64,0x69, + 0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x73,0x65,0x67,0x6d,0x65,0x6e,0x74,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d,0x20,0x5f,0x38, + 0x32,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x33,0x20,0x3d,0x20,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x76, + 0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x35,0x20,0x3d,0x20,0x76,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d,0x20,0x6d,0x69,0x6e,0x28,0x5f, + 0x38,0x32,0x39,0x2c,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x73,0x65, + 0x67,0x6d,0x65,0x6e,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x34,0x30,0x29,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x20,0x3d, + 0x20,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x76,0x5f, + 0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x76,0x5f,0x62,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x39,0x20,0x3d,0x20,0x76,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d,0x20,0x64,0x69,0x73, + 0x74,0x61,0x6e,0x63,0x65,0x5f,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x76,0x65,0x63,0x34,0x20,0x5f,0x38,0x36,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x66,0x20,0x28,0x28,0x28,0x21,0x5f,0x36,0x39,0x35,0x29,0x20,0x26,0x26,0x20,0x28, + 0x21,0x5f,0x37,0x30,0x34,0x29,0x29,0x20,0x26,0x26,0x20,0x28,0x21,0x5f,0x37,0x33, + 0x31,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x32,0x30,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20,0x64, + 0x20,0x2d,0x20,0x76,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20, + 0x5f,0x38,0x37,0x32,0x20,0x3d,0x20,0x73,0x64,0x66,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x32,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x5f,0x38,0x36,0x30,0x20,0x3d,0x20,0x5f,0x38,0x37,0x32,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x38,0x36,0x30, + 0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x38,0x37,0x39,0x20, + 0x3d,0x20,0x5f,0x38,0x36,0x30,0x20,0x2a,0x20,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x38,0x37,0x39,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x20,0x3d,0x20,0x76,0x5f,0x75,0x73,0x65,0x72, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34, - 0x20,0x5f,0x38,0x32,0x31,0x20,0x3d,0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x28,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, - 0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20, - 0x5f,0x38,0x32,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x38, - 0x32,0x31,0x2e,0x77,0x20,0x3d,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x61, - 0x72,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, - 0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x5f,0x38,0x37,0x39,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x76,0x5f,0x70,0x6f,0x73,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x20,0x3d,0x20,0x28,0x28,0x76,0x5f,0x70, + 0x6f,0x73,0x48,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28,0x31,0x2e,0x30,0x29,0x29, + 0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x32,0x28,0x31, + 0x2e,0x30,0x2c,0x20,0x2d,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x32,0x36,0x20,0x3d,0x20,0x76,0x5f,0x75,0x73,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x38,0x39,0x37, + 0x20,0x3d,0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x2c,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x38,0x39,0x37,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x38,0x39,0x37,0x2e,0x77,0x20, + 0x3d,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20, + 0x3d,0x20,0x63,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, }; /* static float4 gl_Position; @@ -2268,11 +2436,12 @@ static const char shallow_water_fs_source_glsl300es[9582] = { static float in_radius; static float v_stroke; static float in_stroke; + static float v_aa; + static float in_aa; static float v_type; static float4 in_params; static float v_alpha; static float v_fill; - static float v_aa; static float2 in_posH; static float2 v_posH; static float4 v_user; @@ -2289,8 +2458,9 @@ static const char shallow_water_fs_source_glsl300es[9582] = { float4 in_col : TEXCOORD6; float in_radius : TEXCOORD7; float in_stroke : TEXCOORD8; - float4 in_params : TEXCOORD9; - float4 in_user_params : TEXCOORD10; + float in_aa : TEXCOORD9; + float4 in_params : TEXCOORD10; + float4 in_user_params : TEXCOORD11; }; struct SPIRV_Cross_Output @@ -2303,10 +2473,10 @@ static const char shallow_water_fs_source_glsl300es[9582] = { float4 v_col : TEXCOORD5; float v_radius : TEXCOORD6; float v_stroke : TEXCOORD7; - float v_type : TEXCOORD8; - float v_alpha : TEXCOORD9; - float v_fill : TEXCOORD10; - float v_aa : TEXCOORD11; + float v_aa : TEXCOORD8; + float v_type : TEXCOORD9; + float v_alpha : TEXCOORD10; + float v_fill : TEXCOORD11; float2 v_posH : TEXCOORD12; float4 v_user : TEXCOORD13; float4 gl_Position : SV_Position; @@ -2322,10 +2492,10 @@ static const char shallow_water_fs_source_glsl300es[9582] = { v_col = in_col; v_radius = in_radius; v_stroke = in_stroke; + v_aa = in_aa; v_type = in_params.x; v_alpha = in_params.y; v_fill = in_params.z; - v_aa = in_params.w; gl_Position = float4(in_posH, 0.0f, 1.0f); v_posH = in_posH; v_user = in_user_params; @@ -2341,6 +2511,7 @@ static const char shallow_water_fs_source_glsl300es[9582] = { in_col = stage_input.in_col; in_radius = stage_input.in_radius; in_stroke = stage_input.in_stroke; + in_aa = stage_input.in_aa; in_params = stage_input.in_params; in_posH = stage_input.in_posH; in_user_params = stage_input.in_user_params; @@ -2355,16 +2526,16 @@ static const char shallow_water_fs_source_glsl300es[9582] = { stage_output.v_col = v_col; stage_output.v_radius = v_radius; stage_output.v_stroke = v_stroke; + stage_output.v_aa = v_aa; stage_output.v_type = v_type; stage_output.v_alpha = v_alpha; stage_output.v_fill = v_fill; - stage_output.v_aa = v_aa; stage_output.v_posH = v_posH; stage_output.v_user = v_user; return stage_output; } */ -static const char shallow_water_vs_source_hlsl5[2850] = { +static const char shallow_water_vs_source_hlsl5[2925] = { 0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x67,0x6c, 0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69, 0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a, @@ -2388,184 +2559,187 @@ static const char shallow_water_vs_source_hlsl5[2850] = { 0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x73,0x74,0x72, 0x6f,0x6b,0x65,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x20,0x69,0x6e,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3b,0x0a,0x73,0x74,0x61, - 0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x74,0x79,0x70,0x65, - 0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, - 0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69, - 0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x3b, - 0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f, - 0x66,0x69,0x6c,0x6c,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x76,0x5f,0x61,0x61,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x69,0x6e,0x5f,0x70,0x6f,0x73,0x48,0x3b,0x0a, - 0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f, - 0x70,0x6f,0x73,0x48,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x34,0x20,0x76,0x5f,0x75,0x73,0x65,0x72,0x3b,0x0a,0x73,0x74,0x61,0x74, - 0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x69,0x6e,0x5f,0x75,0x73,0x65, - 0x72,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63, - 0x74,0x20,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x49,0x6e, - 0x70,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x20,0x69,0x6e,0x5f,0x70,0x6f,0x73,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f, + 0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x61,0x61,0x3b,0x0a, + 0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x69,0x6e,0x5f, + 0x61,0x61,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73, + 0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76, + 0x5f,0x61,0x6c,0x70,0x68,0x61,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x3b,0x0a,0x73,0x74,0x61, + 0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x69,0x6e,0x5f,0x70,0x6f, + 0x73,0x48,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x20,0x76,0x5f,0x70,0x6f,0x73,0x48,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x76,0x5f,0x75,0x73,0x65,0x72,0x3b,0x0a, + 0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x69,0x6e, + 0x5f,0x75,0x73,0x65,0x72,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x3b,0x0a,0x0a,0x73, + 0x74,0x72,0x75,0x63,0x74,0x20,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73, + 0x73,0x5f,0x49,0x6e,0x70,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x32,0x20,0x69,0x6e,0x5f,0x70,0x6f,0x73,0x20,0x3a,0x20,0x54,0x45, + 0x58,0x43,0x4f,0x4f,0x52,0x44,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x20,0x69,0x6e,0x5f,0x70,0x6f,0x73,0x48,0x20,0x3a,0x20,0x54,0x45, + 0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x20,0x69,0x6e,0x5f,0x61,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f, + 0x4f,0x52,0x44,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x20,0x69,0x6e,0x5f,0x62,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44, + 0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x69,0x6e, + 0x5f,0x63,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x34,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x69,0x6e,0x5f,0x75,0x76, + 0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x35,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x69,0x6e,0x5f,0x63,0x6f,0x6c,0x20, + 0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x36,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x69,0x6e,0x5f,0x72,0x61,0x64,0x69,0x75,0x73, + 0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x37,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x69,0x6e,0x5f,0x73,0x74,0x72,0x6f,0x6b, + 0x65,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x38,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x69,0x6e,0x5f,0x61,0x61,0x20,0x3a, + 0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73, + 0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x30,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x69,0x6e,0x5f,0x75,0x73,0x65, + 0x72,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f, + 0x4f,0x52,0x44,0x31,0x31,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63, + 0x74,0x20,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x4f,0x75, + 0x74,0x70,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x20,0x76,0x5f,0x70,0x6f,0x73,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f, 0x52,0x44,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, - 0x69,0x6e,0x5f,0x70,0x6f,0x73,0x48,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f, - 0x52,0x44,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, - 0x69,0x6e,0x5f,0x61,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x32, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x69,0x6e,0x5f, - 0x62,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x69,0x6e,0x5f,0x63,0x20,0x3a, - 0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x69,0x6e,0x5f,0x75,0x76,0x20,0x3a,0x20,0x54, - 0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x34,0x20,0x69,0x6e,0x5f,0x63,0x6f,0x6c,0x20,0x3a,0x20,0x54,0x45, - 0x58,0x43,0x4f,0x4f,0x52,0x44,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x69,0x6e,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x20,0x3a,0x20,0x54, - 0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x69,0x6e,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x20,0x3a,0x20, - 0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x34,0x20,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x20, - 0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x39,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x69,0x6e,0x5f,0x75,0x73,0x65,0x72,0x5f, - 0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52, - 0x44,0x31,0x30,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20, - 0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x4f,0x75,0x74,0x70, - 0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, - 0x76,0x5f,0x70,0x6f,0x73,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44, - 0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f, - 0x61,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x62,0x20,0x3a,0x20, - 0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x63,0x20,0x3a,0x20,0x54,0x45,0x58,0x43, - 0x4f,0x4f,0x52,0x44,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x32,0x20,0x76,0x5f,0x75,0x76,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52, - 0x44,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x76, - 0x5f,0x63,0x6f,0x6c,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x35, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x72,0x61, - 0x64,0x69,0x75,0x73,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x36, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x73,0x74, - 0x72,0x6f,0x6b,0x65,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x37, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x74,0x79, - 0x70,0x65,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x38,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x61,0x6c,0x70,0x68, - 0x61,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x39,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x20, + 0x76,0x5f,0x61,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x62,0x20, + 0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x32,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x63,0x20,0x3a,0x20,0x54,0x45, + 0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x20,0x76,0x5f,0x75,0x76,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f, + 0x4f,0x52,0x44,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, + 0x20,0x76,0x5f,0x63,0x6f,0x6c,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52, + 0x44,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f, + 0x72,0x61,0x64,0x69,0x75,0x73,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52, + 0x44,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f, + 0x73,0x74,0x72,0x6f,0x6b,0x65,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52, + 0x44,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f, + 0x61,0x61,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x38,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x74,0x79,0x70,0x65, + 0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x39,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x20, 0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x30,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x61,0x61,0x20,0x3a,0x20,0x54, - 0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x70,0x6f,0x73,0x48,0x20,0x3a,0x20,0x54, - 0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x34,0x20,0x76,0x5f,0x75,0x73,0x65,0x72,0x20,0x3a,0x20,0x54, - 0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x34,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f, - 0x6e,0x20,0x3a,0x20,0x53,0x56,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b, - 0x0a,0x7d,0x3b,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x76,0x65,0x72,0x74,0x5f,0x6d, - 0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x70,0x6f, - 0x73,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x76,0x5f,0x61,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x76,0x5f,0x62,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x76,0x5f,0x63,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x76,0x5f,0x75,0x76,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x75,0x76,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x63,0x6f,0x6c, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x20,0x3d, - 0x20,0x69,0x6e,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x73,0x74, - 0x72,0x6f,0x6b,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x74,0x79,0x70,0x65, - 0x20,0x3d,0x20,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x78,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x20,0x3d,0x20,0x69,0x6e, - 0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, - 0x5f,0x66,0x69,0x6c,0x6c,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d, - 0x73,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x61,0x61,0x20,0x3d,0x20, - 0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x77,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x34,0x28,0x69,0x6e,0x5f,0x70,0x6f,0x73,0x48,0x2c,0x20,0x30, - 0x2e,0x30,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x76,0x5f,0x70,0x6f,0x73,0x48,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x70,0x6f,0x73,0x48, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x75,0x73,0x65,0x72,0x20,0x3d,0x20,0x69, - 0x6e,0x5f,0x75,0x73,0x65,0x72,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x3b,0x0a,0x7d, - 0x0a,0x0a,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x4f,0x75, - 0x74,0x70,0x75,0x74,0x20,0x6d,0x61,0x69,0x6e,0x28,0x53,0x50,0x49,0x52,0x56,0x5f, - 0x43,0x72,0x6f,0x73,0x73,0x5f,0x49,0x6e,0x70,0x75,0x74,0x20,0x73,0x74,0x61,0x67, - 0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69, - 0x6e,0x5f,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e, - 0x70,0x75,0x74,0x2e,0x69,0x6e,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x6e,0x5f,0x61,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70, - 0x75,0x74,0x2e,0x69,0x6e,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x5f, - 0x62,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e, - 0x69,0x6e,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x5f,0x63,0x20,0x3d, - 0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x69,0x6e,0x5f, - 0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x5f,0x75,0x76,0x20,0x3d,0x20,0x73, - 0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x69,0x6e,0x5f,0x75,0x76, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x5f,0x63,0x6f,0x6c,0x20,0x3d,0x20,0x73, - 0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x69,0x6e,0x5f,0x63,0x6f, - 0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x5f,0x72,0x61,0x64,0x69,0x75,0x73, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x20,0x3a, + 0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x31,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x70,0x6f,0x73,0x48,0x20,0x3a, + 0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x32,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x76,0x5f,0x75,0x73,0x65,0x72,0x20,0x3a, + 0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x33,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74, + 0x69,0x6f,0x6e,0x20,0x3a,0x20,0x53,0x56,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f, + 0x6e,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x76,0x65,0x72,0x74, + 0x5f,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f, + 0x70,0x6f,0x73,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x76,0x5f,0x61,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x61,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x76,0x5f,0x62,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x62,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x76,0x5f,0x63,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x63,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x76,0x5f,0x75,0x76,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x75,0x76,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x63, + 0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x72,0x61,0x64,0x69,0x75,0x73, + 0x20,0x3d,0x20,0x69,0x6e,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x20,0x3d,0x20,0x69,0x6e,0x5f, + 0x73,0x74,0x72,0x6f,0x6b,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x61,0x61, + 0x20,0x3d,0x20,0x69,0x6e,0x5f,0x61,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f, + 0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73, + 0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x20, + 0x3d,0x20,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x79,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x70, + 0x61,0x72,0x61,0x6d,0x73,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x6c,0x5f, + 0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x34,0x28,0x69,0x6e,0x5f,0x70,0x6f,0x73,0x48,0x2c,0x20,0x30,0x2e,0x30,0x66,0x2c, + 0x20,0x31,0x2e,0x30,0x66,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x70,0x6f, + 0x73,0x48,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x70,0x6f,0x73,0x48,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x76,0x5f,0x75,0x73,0x65,0x72,0x20,0x3d,0x20,0x69,0x6e,0x5f,0x75,0x73, + 0x65,0x72,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x3b,0x0a,0x7d,0x0a,0x0a,0x53,0x50, + 0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x4f,0x75,0x74,0x70,0x75,0x74, + 0x20,0x6d,0x61,0x69,0x6e,0x28,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73, + 0x73,0x5f,0x49,0x6e,0x70,0x75,0x74,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e, + 0x70,0x75,0x74,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x5f,0x70,0x6f, + 0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e, + 0x69,0x6e,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x5f,0x61, 0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x69, - 0x6e,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e, - 0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f, - 0x69,0x6e,0x70,0x75,0x74,0x2e,0x69,0x6e,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x3d, + 0x6e,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x5f,0x62,0x20,0x3d,0x20, + 0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x69,0x6e,0x5f,0x62, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x5f,0x63,0x20,0x3d,0x20,0x73,0x74,0x61, + 0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x69,0x6e,0x5f,0x63,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x69,0x6e,0x5f,0x75,0x76,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65, + 0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x69,0x6e,0x5f,0x75,0x76,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x6e,0x5f,0x63,0x6f,0x6c,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65, + 0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x69,0x6e,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x69,0x6e,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x20,0x3d,0x20,0x73, + 0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x69,0x6e,0x5f,0x72,0x61, + 0x64,0x69,0x75,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x5f,0x73,0x74,0x72, + 0x6f,0x6b,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75, + 0x74,0x2e,0x69,0x6e,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x69,0x6e,0x5f,0x61,0x61,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69, + 0x6e,0x70,0x75,0x74,0x2e,0x69,0x6e,0x5f,0x61,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x67, + 0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d, + 0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x5f,0x70,0x6f,0x73,0x48,0x20,0x3d, 0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x69,0x6e,0x5f, - 0x70,0x61,0x72,0x61,0x6d,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x5f,0x70, - 0x6f,0x73,0x48,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75, - 0x74,0x2e,0x69,0x6e,0x5f,0x70,0x6f,0x73,0x48,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, - 0x6e,0x5f,0x75,0x73,0x65,0x72,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x3d,0x20, - 0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x69,0x6e,0x5f,0x75, - 0x73,0x65,0x72,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x76,0x65,0x72,0x74,0x5f,0x6d,0x61,0x69,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x4f,0x75,0x74, - 0x70,0x75,0x74,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70, - 0x75,0x74,0x2e,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d, - 0x20,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x76, - 0x5f,0x70,0x6f,0x73,0x20,0x3d,0x20,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x76, - 0x5f,0x61,0x20,0x3d,0x20,0x76,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74, - 0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x76,0x5f,0x62,0x20,0x3d, - 0x20,0x76,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67,0x65,0x5f, - 0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x76,0x5f,0x63,0x20,0x3d,0x20,0x76,0x5f,0x63, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70, - 0x75,0x74,0x2e,0x76,0x5f,0x75,0x76,0x20,0x3d,0x20,0x76,0x5f,0x75,0x76,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74, - 0x2e,0x76,0x5f,0x63,0x6f,0x6c,0x20,0x3d,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74, - 0x2e,0x76,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x20,0x3d,0x20,0x76,0x5f,0x72,0x61, - 0x64,0x69,0x75,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67,0x65,0x5f, - 0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x20, - 0x3d,0x20,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x76,0x5f,0x74, - 0x79,0x70,0x65,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x76, - 0x5f,0x61,0x6c,0x70,0x68,0x61,0x20,0x3d,0x20,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70, - 0x75,0x74,0x2e,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x20,0x3d,0x20,0x76,0x5f,0x66,0x69, - 0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75, - 0x74,0x70,0x75,0x74,0x2e,0x76,0x5f,0x61,0x61,0x20,0x3d,0x20,0x76,0x5f,0x61,0x61, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70, - 0x75,0x74,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x48,0x20,0x3d,0x20,0x76,0x5f,0x70,0x6f, - 0x73,0x48,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75, - 0x74,0x70,0x75,0x74,0x2e,0x76,0x5f,0x75,0x73,0x65,0x72,0x20,0x3d,0x20,0x76,0x5f, - 0x75,0x73,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, - 0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x0a,0x7d, - 0x0a,0x00, + 0x70,0x6f,0x73,0x48,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x5f,0x75,0x73,0x65, + 0x72,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65, + 0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x69,0x6e,0x5f,0x75,0x73,0x65,0x72,0x5f,0x70, + 0x61,0x72,0x61,0x6d,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x72,0x74,0x5f, + 0x6d,0x61,0x69,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x53,0x50,0x49,0x52, + 0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x4f,0x75,0x74,0x70,0x75,0x74,0x20,0x73, + 0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x67,0x6c, + 0x5f,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x67,0x6c,0x5f,0x50, + 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61, + 0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x20, + 0x3d,0x20,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61, + 0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x76,0x5f,0x61,0x20,0x3d,0x20, + 0x76,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f, + 0x75,0x74,0x70,0x75,0x74,0x2e,0x76,0x5f,0x62,0x20,0x3d,0x20,0x76,0x5f,0x62,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75, + 0x74,0x2e,0x76,0x5f,0x63,0x20,0x3d,0x20,0x76,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x76,0x5f, + 0x75,0x76,0x20,0x3d,0x20,0x76,0x5f,0x75,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73, + 0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x76,0x5f,0x63,0x6f, + 0x6c,0x20,0x3d,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73, + 0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x76,0x5f,0x72,0x61, + 0x64,0x69,0x75,0x73,0x20,0x3d,0x20,0x76,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75, + 0x74,0x2e,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x20,0x3d,0x20,0x76,0x5f,0x73, + 0x74,0x72,0x6f,0x6b,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67,0x65, + 0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x76,0x5f,0x61,0x61,0x20,0x3d,0x20,0x76, + 0x5f,0x61,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f, + 0x75,0x74,0x70,0x75,0x74,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x76, + 0x5f,0x74,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67,0x65, + 0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x20, + 0x3d,0x20,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73, + 0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x76,0x5f,0x66,0x69, + 0x6c,0x6c,0x20,0x3d,0x20,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x76,0x5f, + 0x70,0x6f,0x73,0x48,0x20,0x3d,0x20,0x76,0x5f,0x70,0x6f,0x73,0x48,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e, + 0x76,0x5f,0x75,0x73,0x65,0x72,0x20,0x3d,0x20,0x76,0x5f,0x75,0x73,0x65,0x72,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x61,0x67, + 0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x00, }; /* - cbuffer fs_params : register(b0) + cbuffer shader_uniforms : register(b0) { - float2 _282_u_texture_size : packoffset(c0); - float _282_u_aaf : packoffset(c0.z); - float _282_u_aa_scale : packoffset(c0.w); + float _651_show_normals : packoffset(c0); + float _651_show_noise : packoffset(c0.y); }; - cbuffer shader_uniforms : register(b1) + cbuffer fs_params : register(b1) { - float _572_amplitude : packoffset(c0); - float _572_time : packoffset(c0.y); - float _572_show_noise : packoffset(c0.z); + float2 _756_u_texture_size : packoffset(c0); }; Texture2D noise_tex : register(t0); SamplerState _noise_tex_sampler : register(s0); - Texture2D water_tex : register(t1); - SamplerState _water_tex_sampler : register(s1); - Texture2D u_image : register(t2); - SamplerState _u_image_sampler : register(s2); + Texture2D wavelets_tex : register(t1); + SamplerState _wavelets_tex_sampler : register(s1); + Texture2D scene_tex : register(t2); + SamplerState _scene_tex_sampler : register(s2); + Texture2D u_image : register(t3); + SamplerState _u_image_sampler : register(s3); static float v_stroke; static float v_aa; @@ -2593,10 +2767,10 @@ static const char shallow_water_vs_source_hlsl5[2850] = { float4 v_col : TEXCOORD5; float v_radius : TEXCOORD6; float v_stroke : TEXCOORD7; - float v_type : TEXCOORD8; - float v_alpha : TEXCOORD9; - float v_fill : TEXCOORD10; - float v_aa : TEXCOORD11; + float v_aa : TEXCOORD8; + float v_type : TEXCOORD9; + float v_alpha : TEXCOORD10; + float v_fill : TEXCOORD11; float2 v_posH : TEXCOORD12; float4 v_user : TEXCOORD13; }; @@ -2608,8 +2782,8 @@ static const char shallow_water_vs_source_hlsl5[2850] = { float2 smooth_uv(float2 uv, float2 texture_size) { - float2 _204 = floor(mad(uv, texture_size, 0.5f.xx)); - return (_204 + clamp(mad(uv, texture_size, -_204) / fwidth(uv * texture_size), (-0.5f).xx, 0.5f.xx)) / texture_size; + float2 _216 = floor(mad(uv, texture_size, 0.5f.xx)); + return (_216 + clamp(mad(uv, texture_size, -_216) / fwidth(uv * texture_size), (-0.5f).xx, 0.5f.xx)) / texture_size; } float4 de_gamma(float4 c) @@ -2619,16 +2793,16 @@ static const char shallow_water_vs_source_hlsl5[2850] = { float overlay(float base, float blend) { - float _104; + float _116; if (base <= 0.5f) { - _104 = (2.0f * base) * blend; + _116 = (2.0f * base) * blend; } else { - _104 = mad((1.0f - base) * (-2.0f), 1.0f - blend, 1.0f); + _116 = mad((1.0f - base) * (-2.0f), 1.0f - blend, 1.0f); } - return _104; + return _116; } float3 overlay(float3 base, float3 blend) @@ -2661,8 +2835,8 @@ static const char shallow_water_vs_source_hlsl5[2850] = { float distance_aabb(float2 p, float2 he) { - float2 _357 = abs(p) - he; - return length(max(_357, 0.0f.xx)) + min(max(_357.x, _357.y), 0.0f); + float2 _360 = abs(p) - he; + return length(max(_360, 0.0f.xx)) + min(max(_360.x, _360.y), 0.0f); } float distance_box(inout float2 p, float2 c, float2 he, float2 u) @@ -2677,40 +2851,40 @@ static const char shallow_water_vs_source_hlsl5[2850] = { float safe_div(float a, float b) { - float _225; + float _237; if (b == 0.0f) { - _225 = 0.0f; + _237 = 0.0f; } else { - _225 = a / b; + _237 = a / b; } - return _225; + return _237; } float safe_len(float2 v) { - float _238 = dot(v, v); - float _241; - if (_238 == 0.0f) + float _250 = dot(v, v); + float _253; + if (_250 == 0.0f) { - _241 = 0.0f; + _253 = 0.0f; } else { - _241 = sqrt(_238); + _253 = sqrt(_250); } - return _241; + return _253; } float distance_segment(float2 p, float2 a, float2 b) { - float2 _402 = b - a; - float2 _406 = p - a; - float param = dot(_406, _402); - float param_1 = dot(_402, _402); - float2 param_2 = _406 - (_402 * clamp(safe_div(param, param_1), 0.0f, 1.0f)); + float2 _405 = b - a; + float2 _409 = p - a; + float param = dot(_409, _405); + float param_1 = dot(_405, _405); + float2 param_2 = _409 - (_405 * clamp(safe_div(param, param_1), 0.0f, 1.0f)); return safe_len(param_2); } @@ -2721,32 +2895,32 @@ static const char shallow_water_vs_source_hlsl5[2850] = { float distance_triangle(float2 p, float2 a, float2 b, float2 c) { - float2 _432 = b - a; - float2 _436 = c - b; - float2 _440 = a - c; - float2 _444 = p - a; - float2 _448 = p - b; - float2 _452 = p - c; - float param = dot(_444, _432); - float param_1 = dot(_432, _432); - float2 _467 = _444 - (_432 * clamp(safe_div(param, param_1), 0.0f, 1.0f)); - float param_2 = dot(_448, _436); - float param_3 = dot(_436, _436); - float2 _482 = _448 - (_436 * clamp(safe_div(param_2, param_3), 0.0f, 1.0f)); - float param_4 = dot(_452, _440); - float param_5 = dot(_440, _440); - float2 _497 = _452 - (_440 * clamp(safe_div(param_4, param_5), 0.0f, 1.0f)); - float2 param_6 = _432; - float2 param_7 = _440; - float _503 = det2(param_6, param_7); - float2 param_8 = _444; - float2 param_9 = _432; - float2 param_10 = _448; - float2 param_11 = _436; - float2 param_12 = _452; - float2 param_13 = _440; - float2 _539 = min(min(float2(dot(_467, _467), _503 * det2(param_8, param_9)), float2(dot(_482, _482), _503 * det2(param_10, param_11))), float2(dot(_497, _497), _503 * det2(param_12, param_13))); - return (-sqrt(_539.x)) * sign(_539.y); + float2 _435 = b - a; + float2 _439 = c - b; + float2 _443 = a - c; + float2 _447 = p - a; + float2 _451 = p - b; + float2 _455 = p - c; + float param = dot(_447, _435); + float param_1 = dot(_435, _435); + float2 _470 = _447 - (_435 * clamp(safe_div(param, param_1), 0.0f, 1.0f)); + float param_2 = dot(_451, _439); + float param_3 = dot(_439, _439); + float2 _485 = _451 - (_439 * clamp(safe_div(param_2, param_3), 0.0f, 1.0f)); + float param_4 = dot(_455, _443); + float param_5 = dot(_443, _443); + float2 _500 = _455 - (_443 * clamp(safe_div(param_4, param_5), 0.0f, 1.0f)); + float2 param_6 = _435; + float2 param_7 = _443; + float _506 = det2(param_6, param_7); + float2 param_8 = _447; + float2 param_9 = _435; + float2 param_10 = _451; + float2 param_11 = _439; + float2 param_12 = _455; + float2 param_13 = _443; + float2 _542 = min(min(float2(dot(_470, _470), _506 * det2(param_8, param_9)), float2(dot(_485, _485), _506 * det2(param_10, param_11))), float2(dot(_500, _500), _506 * det2(param_12, param_13))); + return (-sqrt(_542.x)) * sign(_542.y); } float sdf_stroke(float d) @@ -2756,161 +2930,188 @@ static const char shallow_water_vs_source_hlsl5[2850] = { float4 sdf(float4 a, float4 b, float d) { - float _291 = _282_u_aaf * _282_u_aa_scale; float param = d; - float _295 = sdf_stroke(param); - bool4 _310 = (_295 <= 0.0f).xxxx; + float4 _303 = lerp(b, a, smoothstep(0.0f, v_aa, sdf_stroke(param)).xxxx); bool4 _327 = (clamp(d, -1.0f, 1.0f) <= 0.0f).xxxx; - float4 _334 = v_aa.xxxx; - result = lerp(lerp(float4(_310.x ? b.x : a.x, _310.y ? b.y : a.y, _310.z ? b.z : a.z, _310.w ? b.w : a.w), lerp(b, a, smoothstep(0.0f, _291, _295).xxxx), _334), lerp(float4(_327.x ? b.x : a.x, _327.y ? b.y : a.y, _327.z ? b.z : a.z, _327.w ? b.w : a.w), lerp(b, a, smoothstep(0.0f, _291, d).xxxx), _334), v_fill.xxxx); + float4 _335 = float(v_aa > 0.0f).xxxx; + result = lerp(lerp(_303, _303, _335), lerp(float4(_327.x ? b.x : a.x, _327.y ? b.y : a.y, _327.z ? b.z : a.z, _327.w ? b.w : a.w), lerp(b, a, smoothstep(0.0f, v_aa, d).xxxx), _335), v_fill.xxxx); return result; } + float2 normal_from_heightmap(Texture2D tex, SamplerState _tex_sampler, float2 uv) + { + float4 _574 = tex.Sample(_tex_sampler, uv, int2(0, -1)); + float _575 = _574.x; + return float2(tex.Sample(_tex_sampler, uv, int2(-1, 1)).x - _575, tex.Sample(_tex_sampler, uv, int2(1, 1)).x - _575); + } + + float4 normal_to_color(float2 n) + { + return float4((n * 0.5f) + 0.5f.xx, 1.0f, 1.0f); + } + float4 shader(float4 color, float2 pos, float2 uv, float4 params) { - float4 _577 = noise_tex.Sample(_noise_tex_sampler, (float2(uv.x * 5.0f, uv.y * 3.75f) * 0.5f) + _572_time.xx); - float _579 = _577.x - 0.5f; - float4 c = water_tex.Sample(_water_tex_sampler, uv + ((float2(0.001562500023283064365386962890625f, 0.00208333344198763370513916015625f) * _579) * _572_amplitude)); - float4 _602; - if (_572_show_noise > 0.0f) + float2 param = uv; + float2 _604 = normal_from_heightmap(noise_tex, _noise_tex_sampler, param); + float2 param_1 = uv + ((_604 * float2(0.0062500000931322574615478515625f, 0.008333333767950534820556640625f)) * 10.0f); + float2 _615 = normal_from_heightmap(wavelets_tex, _wavelets_tex_sampler, param_1); + float2 param_2 = _604; + float2 param_3 = _615; + float2 _631 = _604 + _615; + float4 c = lerp(scene_tex.Sample(_scene_tex_sampler, uv + ((_631 * float2(0.0062500000931322574615478515625f, 0.008333333767950534820556640625f)) * 10.0f)), 1.0f.xxxx, ((length(_631) > 0.20000000298023223876953125f) ? 0.100000001490116119384765625f : 0.0f).xxxx); + float4 _656; + if (_651_show_normals > 0.0f) + { + float2 param_4 = _604; + float2 param_5 = _615; + _656 = lerp(normal_to_color(param_4), normal_to_color(param_5), 0.25f.xxxx); + } + else + { + _656 = c; + } + c = _656; + float4 _673; + if (_651_show_noise > 0.0f) { - _602 = _579.xxxx + 0.5f.xxxx; + _673 = noise_tex.Sample(_noise_tex_sampler, uv); } else { - _602 = c; + _673 = c; } - c = _602; - return _602; + c = _673; + return _673; } void frag_main() { - bool _618 = v_type >= 0.0f; - bool _624; - if (_618) + bool _689 = v_type >= 0.0f; + bool _695; + if (_689) { - _624 = v_type < 0.00196078442968428134918212890625f; + _695 = v_type < 0.00196078442968428134918212890625f; } else { - _624 = _618; + _695 = _689; } - bool _627 = v_type > 0.00196078442968428134918212890625f; - bool _633; - if (_627) + bool _698 = v_type > 0.00196078442968428134918212890625f; + bool _704; + if (_698) { - _633 = v_type < 0.0058823530562222003936767578125f; + _704 = v_type < 0.0058823530562222003936767578125f; } else { - _633 = _627; + _704 = _698; } - bool _636 = v_type > 0.0058823530562222003936767578125f; - bool _642; - if (_636) + bool _707 = v_type > 0.0058823530562222003936767578125f; + bool _713; + if (_707) { - _642 = v_type < 0.009803921915590763092041015625f; + _713 = v_type < 0.009803921915590763092041015625f; } else { - _642 = _636; + _713 = _707; } - bool _645 = v_type > 0.009803921915590763092041015625f; - bool _651; - if (_645) + bool _716 = v_type > 0.009803921915590763092041015625f; + bool _722; + if (_716) { - _651 = v_type < 0.013725490309298038482666015625f; + _722 = v_type < 0.013725490309298038482666015625f; } else { - _651 = _645; + _722 = _716; } - bool _654 = v_type > 0.013725490309298038482666015625f; - bool _660; - if (_654) + bool _725 = v_type > 0.013725490309298038482666015625f; + bool _731; + if (_725) { - _660 = v_type < 0.01764705963432788848876953125f; + _731 = v_type < 0.01764705963432788848876953125f; } else { - _660 = _654; + _731 = _725; } - bool _663 = v_type > 0.01764705963432788848876953125f; - bool _669; - if (_663) + bool _734 = v_type > 0.01764705963432788848876953125f; + bool _740; + if (_734) { - _669 = v_type < 0.02156862802803516387939453125f; + _740 = v_type < 0.02156862802803516387939453125f; } else { - _669 = _663; + _740 = _734; } float4 c = 0.0f.xxxx; - float4 _676; - if (!(_624 && _633)) + float4 _747; + if (!(_695 && _704)) { float2 param = v_uv; - float2 param_1 = _282_u_texture_size; + float2 param_1 = _756_u_texture_size; float4 param_2 = u_image.Sample(_u_image_sampler, smooth_uv(param, param_1)); - _676 = de_gamma(param_2); + _747 = de_gamma(param_2); } else { - _676 = c; + _747 = c; } - c = _676; - float4 _697; - if (_624) + c = _747; + float4 _771; + if (_695) { float4 param_3 = c; float4 param_4 = v_col; float4 param_5 = overlay(param_3, param_4); - _697 = gamma(param_5); + _771 = gamma(param_5); } else { - _697 = c; + _771 = c; } - c = _697; - float4 _713; - if (_633) + c = _771; + float4 _787; + if (_704) { - _713 = v_col * c.w; + _787 = v_col * c.w; } else { - _713 = c; + _787 = c; } - bool4 _726 = _660.xxxx; - c = float4(_726.x ? v_col.x : _713.x, _726.y ? v_col.y : _713.y, _726.z ? v_col.z : _713.z, _726.w ? v_col.w : _713.w); + bool4 _800 = _731.xxxx; + c = float4(_800.x ? v_col.x : _787.x, _800.y ? v_col.y : _787.y, _800.z ? v_col.z : _787.z, _800.w ? v_col.w : _787.w); float d = 0.0f; - if (_642) + if (_713) { float2 param_6 = v_pos; float2 param_7 = v_a; float2 param_8 = v_b; float2 param_9 = v_c; - float _744 = distance_box(param_6, param_7, param_8, param_9); - d = _744; + float _818 = distance_box(param_6, param_7, param_8, param_9); + d = _818; } else { - if (_651) + if (_722) { float2 param_10 = v_pos; float2 param_11 = v_a; float2 param_12 = v_b; - float _755 = distance_segment(param_10, param_11, param_12); - d = _755; + float _829 = distance_segment(param_10, param_11, param_12); + d = _829; float2 param_13 = v_pos; float2 param_14 = v_b; float2 param_15 = v_c; - d = min(_755, distance_segment(param_13, param_14, param_15)); + d = min(_829, distance_segment(param_13, param_14, param_15)); } else { - if (_669) + if (_740) { float2 param_16 = v_pos; float2 param_17 = v_a; @@ -2920,28 +3121,28 @@ static const char shallow_water_vs_source_hlsl5[2850] = { } } } - float4 _786; - if (((!_624) && (!_633)) && (!_660)) + float4 _860; + if (((!_695) && (!_704)) && (!_731)) { float4 param_20 = c; float4 param_21 = v_col; float param_22 = d - v_radius; - float4 _798 = sdf(param_20, param_21, param_22); - _786 = _798; + float4 _872 = sdf(param_20, param_21, param_22); + _860 = _872; } else { - _786 = c; + _860 = c; } - float4 _805 = _786 * v_alpha; - c = _805; - float4 param_23 = _805; + float4 _879 = _860 * v_alpha; + c = _879; + float4 param_23 = _879; float2 param_24 = v_pos; - float2 param_25 = (v_posH + 1.0f.xx) * 0.5f; + float2 param_25 = ((v_posH + 1.0f.xx) * 0.5f) * float2(1.0f, -1.0f); float4 param_26 = v_user; - float4 _821 = shader(param_23, param_24, param_25, param_26); - c = _821; - if (_821.w == 0.0f) + float4 _897 = shader(param_23, param_24, param_25, param_26); + c = _897; + if (_897.w == 0.0f) { discard; } @@ -2970,493 +3171,546 @@ static const char shallow_water_vs_source_hlsl5[2850] = { return stage_output; } */ -static const char shallow_water_fs_source_hlsl5[10494] = { - 0x63,0x62,0x75,0x66,0x66,0x65,0x72,0x20,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d, - 0x73,0x20,0x3a,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x28,0x62,0x30,0x29, - 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x32, - 0x38,0x32,0x5f,0x75,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a, - 0x65,0x20,0x3a,0x20,0x70,0x61,0x63,0x6b,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x63, - 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32, - 0x38,0x32,0x5f,0x75,0x5f,0x61,0x61,0x66,0x20,0x3a,0x20,0x70,0x61,0x63,0x6b,0x6f, - 0x66,0x66,0x73,0x65,0x74,0x28,0x63,0x30,0x2e,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x38,0x32,0x5f,0x75,0x5f,0x61,0x61, - 0x5f,0x73,0x63,0x61,0x6c,0x65,0x20,0x3a,0x20,0x70,0x61,0x63,0x6b,0x6f,0x66,0x66, - 0x73,0x65,0x74,0x28,0x63,0x30,0x2e,0x77,0x29,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x63, - 0x62,0x75,0x66,0x66,0x65,0x72,0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x5f,0x75,0x6e, - 0x69,0x66,0x6f,0x72,0x6d,0x73,0x20,0x3a,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65, - 0x72,0x28,0x62,0x31,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x5f,0x35,0x37,0x32,0x5f,0x61,0x6d,0x70,0x6c,0x69,0x74,0x75,0x64,0x65, +static const char shallow_water_fs_source_hlsl5[11366] = { + 0x63,0x62,0x75,0x66,0x66,0x65,0x72,0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x5f,0x75, + 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x20,0x3a,0x20,0x72,0x65,0x67,0x69,0x73,0x74, + 0x65,0x72,0x28,0x62,0x30,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x5f,0x36,0x35,0x31,0x5f,0x73,0x68,0x6f,0x77,0x5f,0x6e,0x6f,0x72, + 0x6d,0x61,0x6c,0x73,0x20,0x3a,0x20,0x70,0x61,0x63,0x6b,0x6f,0x66,0x66,0x73,0x65, + 0x74,0x28,0x63,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x5f,0x36,0x35,0x31,0x5f,0x73,0x68,0x6f,0x77,0x5f,0x6e,0x6f,0x69,0x73,0x65, 0x20,0x3a,0x20,0x70,0x61,0x63,0x6b,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x63,0x30, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x35,0x37, - 0x32,0x5f,0x74,0x69,0x6d,0x65,0x20,0x3a,0x20,0x70,0x61,0x63,0x6b,0x6f,0x66,0x66, - 0x73,0x65,0x74,0x28,0x63,0x30,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x35,0x37,0x32,0x5f,0x73,0x68,0x6f,0x77,0x5f,0x6e, - 0x6f,0x69,0x73,0x65,0x20,0x3a,0x20,0x70,0x61,0x63,0x6b,0x6f,0x66,0x66,0x73,0x65, - 0x74,0x28,0x63,0x30,0x2e,0x7a,0x29,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x54,0x65,0x78, - 0x74,0x75,0x72,0x65,0x32,0x44,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x34,0x3e,0x20,0x6e, - 0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x20,0x3a,0x20,0x72,0x65,0x67,0x69,0x73, - 0x74,0x65,0x72,0x28,0x74,0x30,0x29,0x3b,0x0a,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72, - 0x53,0x74,0x61,0x74,0x65,0x20,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78, - 0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x3a,0x20,0x72,0x65,0x67,0x69,0x73, - 0x74,0x65,0x72,0x28,0x73,0x30,0x29,0x3b,0x0a,0x54,0x65,0x78,0x74,0x75,0x72,0x65, - 0x32,0x44,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x34,0x3e,0x20,0x77,0x61,0x74,0x65,0x72, - 0x5f,0x74,0x65,0x78,0x20,0x3a,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x28, - 0x74,0x31,0x29,0x3b,0x0a,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x53,0x74,0x61,0x74, - 0x65,0x20,0x5f,0x77,0x61,0x74,0x65,0x72,0x5f,0x74,0x65,0x78,0x5f,0x73,0x61,0x6d, - 0x70,0x6c,0x65,0x72,0x20,0x3a,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x28, - 0x73,0x31,0x29,0x3b,0x0a,0x54,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x44,0x3c,0x66, - 0x6c,0x6f,0x61,0x74,0x34,0x3e,0x20,0x75,0x5f,0x69,0x6d,0x61,0x67,0x65,0x20,0x3a, - 0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x28,0x74,0x32,0x29,0x3b,0x0a,0x53, - 0x61,0x6d,0x70,0x6c,0x65,0x72,0x53,0x74,0x61,0x74,0x65,0x20,0x5f,0x75,0x5f,0x69, - 0x6d,0x61,0x67,0x65,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x3a,0x20,0x72, - 0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x28,0x73,0x32,0x29,0x3b,0x0a,0x0a,0x73,0x74, - 0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x73,0x74,0x72, - 0x6f,0x6b,0x65,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x76,0x5f,0x61,0x61,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x34,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x73,0x74, - 0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x66,0x69,0x6c, - 0x6c,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x76,0x5f,0x74,0x79,0x70,0x65,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x75,0x76,0x3b,0x0a,0x73,0x74,0x61,0x74, - 0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x3b, - 0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76, - 0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x20,0x76,0x5f,0x61,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x62,0x3b,0x0a,0x73,0x74,0x61,0x74, - 0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x63,0x3b,0x0a,0x73, - 0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x72,0x61, - 0x64,0x69,0x75,0x73,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x3b,0x0a,0x73,0x74,0x61,0x74, - 0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x70,0x6f,0x73,0x48, + 0x2e,0x79,0x29,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x63,0x62,0x75,0x66,0x66,0x65,0x72, + 0x20,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x3a,0x20,0x72,0x65,0x67, + 0x69,0x73,0x74,0x65,0x72,0x28,0x62,0x31,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x37,0x35,0x36,0x5f,0x75,0x5f,0x74,0x65, + 0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x20,0x3a,0x20,0x70,0x61,0x63, + 0x6b,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x63,0x30,0x29,0x3b,0x0a,0x7d,0x3b,0x0a, + 0x0a,0x54,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x44,0x3c,0x66,0x6c,0x6f,0x61,0x74, + 0x34,0x3e,0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x20,0x3a,0x20,0x72, + 0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x28,0x74,0x30,0x29,0x3b,0x0a,0x53,0x61,0x6d, + 0x70,0x6c,0x65,0x72,0x53,0x74,0x61,0x74,0x65,0x20,0x5f,0x6e,0x6f,0x69,0x73,0x65, + 0x5f,0x74,0x65,0x78,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x3a,0x20,0x72, + 0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x28,0x73,0x30,0x29,0x3b,0x0a,0x54,0x65,0x78, + 0x74,0x75,0x72,0x65,0x32,0x44,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x34,0x3e,0x20,0x77, + 0x61,0x76,0x65,0x6c,0x65,0x74,0x73,0x5f,0x74,0x65,0x78,0x20,0x3a,0x20,0x72,0x65, + 0x67,0x69,0x73,0x74,0x65,0x72,0x28,0x74,0x31,0x29,0x3b,0x0a,0x53,0x61,0x6d,0x70, + 0x6c,0x65,0x72,0x53,0x74,0x61,0x74,0x65,0x20,0x5f,0x77,0x61,0x76,0x65,0x6c,0x65, + 0x74,0x73,0x5f,0x74,0x65,0x78,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x3a, + 0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x28,0x73,0x31,0x29,0x3b,0x0a,0x54, + 0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x44,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x34,0x3e, + 0x20,0x73,0x63,0x65,0x6e,0x65,0x5f,0x74,0x65,0x78,0x20,0x3a,0x20,0x72,0x65,0x67, + 0x69,0x73,0x74,0x65,0x72,0x28,0x74,0x32,0x29,0x3b,0x0a,0x53,0x61,0x6d,0x70,0x6c, + 0x65,0x72,0x53,0x74,0x61,0x74,0x65,0x20,0x5f,0x73,0x63,0x65,0x6e,0x65,0x5f,0x74, + 0x65,0x78,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x3a,0x20,0x72,0x65,0x67, + 0x69,0x73,0x74,0x65,0x72,0x28,0x73,0x32,0x29,0x3b,0x0a,0x54,0x65,0x78,0x74,0x75, + 0x72,0x65,0x32,0x44,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x34,0x3e,0x20,0x75,0x5f,0x69, + 0x6d,0x61,0x67,0x65,0x20,0x3a,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x28, + 0x74,0x33,0x29,0x3b,0x0a,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x53,0x74,0x61,0x74, + 0x65,0x20,0x5f,0x75,0x5f,0x69,0x6d,0x61,0x67,0x65,0x5f,0x73,0x61,0x6d,0x70,0x6c, + 0x65,0x72,0x20,0x3a,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x28,0x73,0x33, + 0x29,0x3b,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69, + 0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x61,0x61,0x3b,0x0a,0x73,0x74, + 0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x72,0x65,0x73,0x75, + 0x6c,0x74,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x3b,0x0a,0x73,0x74, + 0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x75,0x76, 0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, - 0x76,0x5f,0x75,0x73,0x65,0x72,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20, - 0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x49,0x6e,0x70,0x75, - 0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76, - 0x5f,0x70,0x6f,0x73,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x30, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x61, - 0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x62,0x20,0x3a,0x20,0x54, - 0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x63,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f, - 0x4f,0x52,0x44,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x20,0x76,0x5f,0x75,0x76,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44, - 0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x76,0x5f, - 0x63,0x6f,0x6c,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x35,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x72,0x61,0x64, - 0x69,0x75,0x73,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x36,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x73,0x74,0x72, - 0x6f,0x6b,0x65,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x37,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x74,0x79,0x70, - 0x65,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x38,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61, - 0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x39,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x20,0x3a, - 0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x30,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x61,0x61,0x20,0x3a,0x20,0x54,0x45, - 0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x70,0x6f,0x73,0x48,0x20,0x3a,0x20,0x54,0x45, - 0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x34,0x20,0x76,0x5f,0x75,0x73,0x65,0x72,0x20,0x3a,0x20,0x54,0x45, - 0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x33,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74, - 0x72,0x75,0x63,0x74,0x20,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73, - 0x5f,0x4f,0x75,0x74,0x70,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x34,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3a,0x20,0x53,0x56, - 0x5f,0x54,0x61,0x72,0x67,0x65,0x74,0x30,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x20,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x5f,0x75,0x76,0x28,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x20,0x75,0x76,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x29,0x0a,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x32,0x30,0x34, - 0x20,0x3d,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x6d,0x61,0x64,0x28,0x75,0x76,0x2c, - 0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x2c,0x20,0x30, - 0x2e,0x35,0x66,0x2e,0x78,0x78,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, - 0x74,0x75,0x72,0x6e,0x20,0x28,0x5f,0x32,0x30,0x34,0x20,0x2b,0x20,0x63,0x6c,0x61, - 0x6d,0x70,0x28,0x6d,0x61,0x64,0x28,0x75,0x76,0x2c,0x20,0x74,0x65,0x78,0x74,0x75, - 0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x2c,0x20,0x2d,0x5f,0x32,0x30,0x34,0x29,0x20, - 0x2f,0x20,0x66,0x77,0x69,0x64,0x74,0x68,0x28,0x75,0x76,0x20,0x2a,0x20,0x74,0x65, - 0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x29,0x2c,0x20,0x28,0x2d,0x30, - 0x2e,0x35,0x66,0x29,0x2e,0x78,0x78,0x2c,0x20,0x30,0x2e,0x35,0x66,0x2e,0x78,0x78, - 0x29,0x29,0x20,0x2f,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a, - 0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x64,0x65,0x5f, - 0x67,0x61,0x6d,0x6d,0x61,0x28,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x63,0x29,0x0a, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x34,0x28,0x70,0x6f,0x77,0x28,0x61,0x62,0x73,0x28,0x63,0x2e,0x78,0x79, - 0x7a,0x29,0x2c,0x20,0x32,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36, - 0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31,0x32,0x35,0x66,0x2e,0x78,0x78, - 0x78,0x29,0x2c,0x20,0x63,0x2e,0x77,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x62,0x61,0x73,0x65,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x62,0x6c,0x65, - 0x6e,0x64,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x5f,0x31,0x30,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x61, - 0x73,0x65,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x35,0x66,0x29,0x0a,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x30,0x34,0x20,0x3d, - 0x20,0x28,0x32,0x2e,0x30,0x66,0x20,0x2a,0x20,0x62,0x61,0x73,0x65,0x29,0x20,0x2a, - 0x20,0x62,0x6c,0x65,0x6e,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x30,0x34,0x20,0x3d,0x20,0x6d,0x61,0x64,0x28, - 0x28,0x31,0x2e,0x30,0x66,0x20,0x2d,0x20,0x62,0x61,0x73,0x65,0x29,0x20,0x2a,0x20, - 0x28,0x2d,0x32,0x2e,0x30,0x66,0x29,0x2c,0x20,0x31,0x2e,0x30,0x66,0x20,0x2d,0x20, - 0x62,0x6c,0x65,0x6e,0x64,0x2c,0x20,0x31,0x2e,0x30,0x66,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f, - 0x31,0x30,0x34,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x6f, - 0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x62,0x61, - 0x73,0x65,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x62,0x6c,0x65,0x6e,0x64, - 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x2e,0x78,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20, - 0x3d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x62, - 0x61,0x73,0x65,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x62,0x6c,0x65,0x6e,0x64, - 0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x2e,0x7a,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x35,0x20,0x3d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x6f, - 0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33, - 0x29,0x2c,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x29,0x3b,0x0a,0x7d, - 0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79, - 0x28,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x62,0x61,0x73,0x65,0x2c,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x34,0x20,0x62,0x6c,0x65,0x6e,0x64,0x29,0x0a,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d, - 0x20,0x62,0x61,0x73,0x65,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20, - 0x62,0x6c,0x65,0x6e,0x64,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72, - 0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x6f,0x76,0x65, - 0x72,0x6c,0x61,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x29,0x2c,0x20,0x62,0x61,0x73,0x65,0x2e,0x77,0x29,0x3b,0x0a,0x7d, - 0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x67,0x61,0x6d,0x6d,0x61,0x28,0x66, - 0x6c,0x6f,0x61,0x74,0x34,0x20,0x63,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72, - 0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x70,0x6f,0x77, - 0x28,0x61,0x62,0x73,0x28,0x63,0x2e,0x78,0x79,0x7a,0x29,0x2c,0x20,0x30,0x2e,0x34, - 0x35,0x34,0x35,0x34,0x35,0x34,0x36,0x38,0x30,0x39,0x31,0x39,0x36,0x34,0x37,0x32, - 0x31,0x36,0x37,0x39,0x36,0x38,0x37,0x35,0x66,0x2e,0x78,0x78,0x78,0x29,0x2c,0x20, - 0x63,0x2e,0x77,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, - 0x73,0x6b,0x65,0x77,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x29,0x0a,0x7b, + 0x76,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x73,0x74,0x61,0x74, + 0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x61,0x3b,0x0a,0x73, + 0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x62, + 0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, + 0x76,0x5f,0x63,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x76,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x3b,0x0a,0x73,0x74,0x61,0x74, + 0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61, + 0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, + 0x76,0x5f,0x70,0x6f,0x73,0x48,0x3b,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x34,0x20,0x76,0x5f,0x75,0x73,0x65,0x72,0x3b,0x0a,0x0a,0x73, + 0x74,0x72,0x75,0x63,0x74,0x20,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73, + 0x73,0x5f,0x49,0x6e,0x70,0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x70,0x6f,0x73,0x20,0x3a,0x20,0x54,0x45,0x58, + 0x43,0x4f,0x4f,0x52,0x44,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x20,0x76,0x5f,0x61,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52, + 0x44,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76, + 0x5f,0x62,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x32,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x63,0x20,0x3a, + 0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x75,0x76,0x20,0x3a,0x20,0x54,0x45, + 0x58,0x43,0x4f,0x4f,0x52,0x44,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x34,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x20,0x3a,0x20,0x54,0x45,0x58,0x43, + 0x4f,0x4f,0x52,0x44,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x76,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x20,0x3a,0x20,0x54,0x45,0x58,0x43, + 0x4f,0x4f,0x52,0x44,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x20,0x3a,0x20,0x54,0x45,0x58,0x43, + 0x4f,0x4f,0x52,0x44,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x76,0x5f,0x61,0x61,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44, + 0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x74, + 0x79,0x70,0x65,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x39,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x61,0x6c,0x70, + 0x68,0x61,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x30,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x66,0x69,0x6c, + 0x6c,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x31,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x70,0x6f,0x73, + 0x48,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x32,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x76,0x5f,0x75,0x73,0x65, + 0x72,0x20,0x3a,0x20,0x54,0x45,0x58,0x43,0x4f,0x4f,0x52,0x44,0x31,0x33,0x3b,0x0a, + 0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x53,0x50,0x49,0x52,0x56, + 0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x4f,0x75,0x74,0x70,0x75,0x74,0x0a,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x72,0x65,0x73,0x75,0x6c, + 0x74,0x20,0x3a,0x20,0x53,0x56,0x5f,0x54,0x61,0x72,0x67,0x65,0x74,0x30,0x3b,0x0a, + 0x7d,0x3b,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x73,0x6d,0x6f,0x6f,0x74, + 0x68,0x5f,0x75,0x76,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x75,0x76,0x2c,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73, + 0x69,0x7a,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x20,0x5f,0x32,0x31,0x36,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x6d, + 0x61,0x64,0x28,0x75,0x76,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73, + 0x69,0x7a,0x65,0x2c,0x20,0x30,0x2e,0x35,0x66,0x2e,0x78,0x78,0x29,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x5f,0x32,0x31,0x36, + 0x20,0x2b,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x6d,0x61,0x64,0x28,0x75,0x76,0x2c, + 0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x2c,0x20,0x2d, + 0x5f,0x32,0x31,0x36,0x29,0x20,0x2f,0x20,0x66,0x77,0x69,0x64,0x74,0x68,0x28,0x75, + 0x76,0x20,0x2a,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65, + 0x29,0x2c,0x20,0x28,0x2d,0x30,0x2e,0x35,0x66,0x29,0x2e,0x78,0x78,0x2c,0x20,0x30, + 0x2e,0x35,0x66,0x2e,0x78,0x78,0x29,0x29,0x20,0x2f,0x20,0x74,0x65,0x78,0x74,0x75, + 0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61, + 0x74,0x34,0x20,0x64,0x65,0x5f,0x67,0x61,0x6d,0x6d,0x61,0x28,0x66,0x6c,0x6f,0x61, + 0x74,0x34,0x20,0x63,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, + 0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x70,0x6f,0x77,0x28,0x61,0x62, + 0x73,0x28,0x63,0x2e,0x78,0x79,0x7a,0x29,0x2c,0x20,0x32,0x2e,0x32,0x30,0x30,0x30, + 0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31, + 0x32,0x35,0x66,0x2e,0x78,0x78,0x78,0x29,0x2c,0x20,0x63,0x2e,0x77,0x29,0x3b,0x0a, + 0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79, + 0x28,0x66,0x6c,0x6f,0x61,0x74,0x20,0x62,0x61,0x73,0x65,0x2c,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x62,0x6c,0x65,0x6e,0x64,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x31,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x62,0x61,0x73,0x65,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x35,0x66, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x5f,0x31,0x31,0x36,0x20,0x3d,0x20,0x28,0x32,0x2e,0x30,0x66,0x20,0x2a,0x20,0x62, + 0x61,0x73,0x65,0x29,0x20,0x2a,0x20,0x62,0x6c,0x65,0x6e,0x64,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x36,0x20, + 0x3d,0x20,0x6d,0x61,0x64,0x28,0x28,0x31,0x2e,0x30,0x66,0x20,0x2d,0x20,0x62,0x61, + 0x73,0x65,0x29,0x20,0x2a,0x20,0x28,0x2d,0x32,0x2e,0x30,0x66,0x29,0x2c,0x20,0x31, + 0x2e,0x30,0x66,0x20,0x2d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2c,0x20,0x31,0x2e,0x30, + 0x66,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, + 0x74,0x75,0x72,0x6e,0x20,0x5f,0x31,0x31,0x36,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x66,0x6c,0x6f, + 0x61,0x74,0x33,0x20,0x62,0x61,0x73,0x65,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x20,0x62,0x6c,0x65,0x6e,0x64,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x62,0x61,0x73,0x65, + 0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2e,0x78,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x32,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d, + 0x20,0x62,0x6c,0x65,0x6e,0x64,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x62,0x61, + 0x73,0x65,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2e, + 0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x28,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x6f,0x76, + 0x65,0x72,0x6c,0x61,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x2c,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79, + 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x35,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x6f, + 0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x62,0x61, + 0x73,0x65,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x62,0x6c,0x65,0x6e,0x64, + 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x2e,0x78,0x79,0x7a,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x20,0x3d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2e,0x78,0x79,0x7a,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x32,0x28,0x2d,0x76,0x2e,0x79,0x2c,0x20,0x76,0x2e,0x78,0x29,0x3b,0x0a,0x7d, - 0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65, - 0x5f,0x61,0x61,0x62,0x62,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x2c,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x68,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x33,0x35,0x37,0x20,0x3d,0x20,0x61, - 0x62,0x73,0x28,0x70,0x29,0x20,0x2d,0x20,0x68,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x6d,0x61, - 0x78,0x28,0x5f,0x33,0x35,0x37,0x2c,0x20,0x30,0x2e,0x30,0x66,0x2e,0x78,0x78,0x29, - 0x29,0x20,0x2b,0x20,0x6d,0x69,0x6e,0x28,0x6d,0x61,0x78,0x28,0x5f,0x33,0x35,0x37, - 0x2e,0x78,0x2c,0x20,0x5f,0x33,0x35,0x37,0x2e,0x79,0x29,0x2c,0x20,0x30,0x2e,0x30, - 0x66,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x69,0x73, - 0x74,0x61,0x6e,0x63,0x65,0x5f,0x62,0x6f,0x78,0x28,0x69,0x6e,0x6f,0x75,0x74,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x20,0x63,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x68,0x65,0x2c,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x20,0x75,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x75,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x2d,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x70,0x20,0x3d,0x20,0x6d,0x75,0x6c,0x28,0x70,0x2c,0x20,0x74,0x72,0x61,0x6e, - 0x73,0x70,0x6f,0x73,0x65,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x78,0x32,0x28,0x75, - 0x2c,0x20,0x73,0x6b,0x65,0x77,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x29,0x29,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x68, - 0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x64,0x69, - 0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x61,0x61,0x62,0x62,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x7d, - 0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76, - 0x28,0x66,0x6c,0x6f,0x61,0x74,0x20,0x61,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x62,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, - 0x32,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x20,0x3d, - 0x3d,0x20,0x30,0x2e,0x30,0x66,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x32,0x35,0x20,0x3d,0x20,0x30,0x2e,0x30, - 0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, - 0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x5f,0x32,0x32,0x35,0x20,0x3d,0x20,0x61,0x20,0x2f,0x20,0x62,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f, - 0x32,0x32,0x35,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x61, - 0x66,0x65,0x5f,0x6c,0x65,0x6e,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x29, - 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x33, - 0x38,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x76,0x2c,0x20,0x76,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x34,0x31,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x32,0x33,0x38,0x20,0x3d,0x3d,0x20,0x30, - 0x2e,0x30,0x66,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x5f,0x32,0x34,0x31,0x20,0x3d,0x20,0x30,0x2e,0x30,0x66,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x34, - 0x31,0x20,0x3d,0x20,0x73,0x71,0x72,0x74,0x28,0x5f,0x32,0x33,0x38,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, - 0x20,0x5f,0x32,0x34,0x31,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x73,0x65,0x67,0x6d,0x65,0x6e,0x74, - 0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x32,0x20,0x61,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x62,0x29,0x0a,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x30,0x32, - 0x20,0x3d,0x20,0x62,0x20,0x2d,0x20,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x30,0x36,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20, - 0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x30,0x36,0x2c,0x20,0x5f, - 0x34,0x30,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34, - 0x30,0x32,0x2c,0x20,0x5f,0x34,0x30,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20, - 0x5f,0x34,0x30,0x36,0x20,0x2d,0x20,0x28,0x5f,0x34,0x30,0x32,0x20,0x2a,0x20,0x63, - 0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x70,0x61, - 0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x30, - 0x2e,0x30,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x61,0x66,0x65,0x5f,0x6c,0x65,0x6e, - 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x64,0x65,0x74,0x32,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, - 0x61,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x62,0x29,0x0a,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x61,0x64,0x28,0x61,0x2e, - 0x78,0x2c,0x20,0x62,0x2e,0x79,0x2c,0x20,0x2d,0x28,0x61,0x2e,0x79,0x20,0x2a,0x20, - 0x62,0x2e,0x78,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c, - 0x65,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x2c,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x32,0x20,0x61,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x62,0x2c,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x63,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x33,0x32,0x20,0x3d,0x20,0x62,0x20, - 0x2d,0x20,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, - 0x5f,0x34,0x33,0x36,0x20,0x3d,0x20,0x63,0x20,0x2d,0x20,0x62,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x34,0x30,0x20,0x3d,0x20, - 0x61,0x20,0x2d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x32,0x20,0x5f,0x34,0x34,0x34,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x61,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x34,0x38,0x20, - 0x3d,0x20,0x70,0x20,0x2d,0x20,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x20,0x5f,0x34,0x35,0x32,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x63, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x34,0x34,0x2c,0x20,0x5f,0x34, - 0x33,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x33, - 0x32,0x2c,0x20,0x5f,0x34,0x33,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x36,0x37,0x20,0x3d,0x20,0x5f,0x34,0x34,0x34, - 0x20,0x2d,0x20,0x28,0x5f,0x34,0x33,0x32,0x20,0x2a,0x20,0x63,0x6c,0x61,0x6d,0x70, - 0x28,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x30,0x2e,0x30,0x66,0x2c, - 0x20,0x31,0x2e,0x30,0x66,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x64,0x6f,0x74, - 0x28,0x5f,0x34,0x34,0x38,0x2c,0x20,0x5f,0x34,0x33,0x36,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20, - 0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x33,0x36,0x2c,0x20,0x5f,0x34,0x33,0x36, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34, - 0x38,0x32,0x20,0x3d,0x20,0x5f,0x34,0x34,0x38,0x20,0x2d,0x20,0x28,0x5f,0x34,0x33, - 0x36,0x20,0x2a,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x66,0x65,0x5f,0x64, - 0x69,0x76,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x33,0x29,0x2c,0x20,0x30,0x2e,0x30,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66, - 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x35,0x32, - 0x2c,0x20,0x5f,0x34,0x34,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x64,0x6f,0x74, - 0x28,0x5f,0x34,0x34,0x30,0x2c,0x20,0x5f,0x34,0x34,0x30,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x39,0x37,0x20,0x3d,0x20, - 0x5f,0x34,0x35,0x32,0x20,0x2d,0x20,0x28,0x5f,0x34,0x34,0x30,0x20,0x2a,0x20,0x63, - 0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c, + 0x74,0x34,0x28,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x62,0x61,0x73,0x65, + 0x2e,0x77,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x67, + 0x61,0x6d,0x6d,0x61,0x28,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x63,0x29,0x0a,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x34,0x28,0x70,0x6f,0x77,0x28,0x61,0x62,0x73,0x28,0x63,0x2e,0x78,0x79,0x7a, + 0x29,0x2c,0x20,0x30,0x2e,0x34,0x35,0x34,0x35,0x34,0x35,0x34,0x36,0x38,0x30,0x39, + 0x31,0x39,0x36,0x34,0x37,0x32,0x31,0x36,0x37,0x39,0x36,0x38,0x37,0x35,0x66,0x2e, + 0x78,0x78,0x78,0x29,0x2c,0x20,0x63,0x2e,0x77,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66, + 0x6c,0x6f,0x61,0x74,0x32,0x20,0x73,0x6b,0x65,0x77,0x28,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x20,0x76,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, + 0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x2d,0x76,0x2e,0x79,0x2c,0x20,0x76, + 0x2e,0x78,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x69, + 0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x61,0x61,0x62,0x62,0x28,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x20,0x70,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x68,0x65,0x29, + 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x33, + 0x36,0x30,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x70,0x29,0x20,0x2d,0x20,0x68,0x65, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6c,0x65,0x6e, + 0x67,0x74,0x68,0x28,0x6d,0x61,0x78,0x28,0x5f,0x33,0x36,0x30,0x2c,0x20,0x30,0x2e, + 0x30,0x66,0x2e,0x78,0x78,0x29,0x29,0x20,0x2b,0x20,0x6d,0x69,0x6e,0x28,0x6d,0x61, + 0x78,0x28,0x5f,0x33,0x36,0x30,0x2e,0x78,0x2c,0x20,0x5f,0x33,0x36,0x30,0x2e,0x79, + 0x29,0x2c,0x20,0x30,0x2e,0x30,0x66,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x62,0x6f,0x78,0x28, + 0x69,0x6e,0x6f,0x75,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x2c,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x63,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x20,0x68,0x65,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x75,0x29,0x0a,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x20,0x3d,0x20,0x75,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x2d,0x3d,0x20, + 0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d,0x20,0x6d,0x75,0x6c,0x28,0x70, + 0x2c,0x20,0x74,0x72,0x61,0x6e,0x73,0x70,0x6f,0x73,0x65,0x28,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x78,0x32,0x28,0x75,0x2c,0x20,0x73,0x6b,0x65,0x77,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x29,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x70,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x32,0x20,0x3d,0x20,0x68,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, + 0x75,0x72,0x6e,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x61,0x61,0x62, + 0x62,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x32,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x61, + 0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x66,0x6c,0x6f,0x61,0x74,0x20,0x61,0x2c,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x62,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x33,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x66,0x20,0x28,0x62,0x20,0x3d,0x3d,0x20,0x30,0x2e,0x30,0x66,0x29,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x33,0x37, + 0x20,0x3d,0x20,0x30,0x2e,0x30,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x33,0x37,0x20,0x3d,0x20,0x61,0x20,0x2f, + 0x20,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, + 0x74,0x75,0x72,0x6e,0x20,0x5f,0x32,0x33,0x37,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x73,0x61,0x66,0x65,0x5f,0x6c,0x65,0x6e,0x28,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x20,0x76,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x5f,0x32,0x35,0x30,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x76,0x2c, + 0x20,0x76,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, + 0x32,0x35,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x32,0x35, + 0x30,0x20,0x3d,0x3d,0x20,0x30,0x2e,0x30,0x66,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x35,0x33,0x20,0x3d,0x20, + 0x30,0x2e,0x30,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x5f,0x32,0x35,0x33,0x20,0x3d,0x20,0x73,0x71,0x72,0x74,0x28,0x5f, + 0x32,0x35,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x32,0x35,0x33,0x3b,0x0a,0x7d,0x0a,0x0a, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x73, + 0x65,0x67,0x6d,0x65,0x6e,0x74,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x2c, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x61,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x20,0x62,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x20,0x5f,0x34,0x30,0x35,0x20,0x3d,0x20,0x62,0x20,0x2d,0x20,0x61,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x30,0x39,0x20, + 0x3d,0x20,0x70,0x20,0x2d,0x20,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f, + 0x34,0x30,0x39,0x2c,0x20,0x5f,0x34,0x30,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20, + 0x64,0x6f,0x74,0x28,0x5f,0x34,0x30,0x35,0x2c,0x20,0x5f,0x34,0x30,0x35,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x34,0x30,0x39,0x20,0x2d,0x20,0x28,0x5f,0x34, + 0x30,0x35,0x20,0x2a,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x66,0x65,0x5f, + 0x64,0x69,0x76,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x29,0x2c,0x20,0x30,0x2e,0x30,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66,0x29, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x61, + 0x66,0x65,0x5f,0x6c,0x65,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b, + 0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x65,0x74,0x32,0x28,0x66, + 0x6c,0x6f,0x61,0x74,0x32,0x20,0x61,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, + 0x62,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, + 0x6d,0x61,0x64,0x28,0x61,0x2e,0x78,0x2c,0x20,0x62,0x2e,0x79,0x2c,0x20,0x2d,0x28, + 0x61,0x2e,0x79,0x20,0x2a,0x20,0x62,0x2e,0x78,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x74, + 0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70, + 0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x61,0x2c,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x20,0x62,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x63,0x29,0x0a, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x33, + 0x35,0x20,0x3d,0x20,0x62,0x20,0x2d,0x20,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x33,0x39,0x20,0x3d,0x20,0x63,0x20,0x2d, + 0x20,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f, + 0x34,0x34,0x33,0x20,0x3d,0x20,0x61,0x20,0x2d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x34,0x37,0x20,0x3d,0x20,0x70, + 0x20,0x2d,0x20,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x20,0x5f,0x34,0x35,0x31,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x62,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x35,0x35,0x20,0x3d, + 0x20,0x70,0x20,0x2d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34, + 0x34,0x37,0x2c,0x20,0x5f,0x34,0x33,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x64, + 0x6f,0x74,0x28,0x5f,0x34,0x33,0x35,0x2c,0x20,0x5f,0x34,0x33,0x35,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x37,0x30,0x20, + 0x3d,0x20,0x5f,0x34,0x34,0x37,0x20,0x2d,0x20,0x28,0x5f,0x34,0x33,0x35,0x20,0x2a, + 0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28, + 0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c, 0x20,0x30,0x2e,0x30,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66,0x29,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x36,0x20,0x3d,0x20,0x5f,0x34,0x33,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f, - 0x34,0x34,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, - 0x35,0x30,0x33,0x20,0x3d,0x20,0x64,0x65,0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38, - 0x20,0x3d,0x20,0x5f,0x34,0x34,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x5f,0x34, - 0x33,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20,0x5f,0x34,0x34,0x38,0x3b,0x0a, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x35,0x31,0x2c,0x20,0x5f,0x34,0x33, + 0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x33,0x39, + 0x2c,0x20,0x5f,0x34,0x33,0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x20,0x5f,0x34,0x38,0x35,0x20,0x3d,0x20,0x5f,0x34,0x35,0x31,0x20, + 0x2d,0x20,0x28,0x5f,0x34,0x33,0x39,0x20,0x2a,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28, + 0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x2c,0x20,0x30,0x2e,0x30,0x66, + 0x2c,0x20,0x31,0x2e,0x30,0x66,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x64,0x6f, + 0x74,0x28,0x5f,0x34,0x35,0x35,0x2c,0x20,0x5f,0x34,0x34,0x33,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35, + 0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x34,0x33,0x2c,0x20,0x5f,0x34,0x34, + 0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f, + 0x35,0x30,0x30,0x20,0x3d,0x20,0x5f,0x34,0x35,0x35,0x20,0x2d,0x20,0x28,0x5f,0x34, + 0x34,0x33,0x20,0x2a,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x66,0x65,0x5f, + 0x64,0x69,0x76,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20,0x30,0x2e,0x30,0x66,0x2c,0x20,0x31,0x2e,0x30, + 0x66,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x34,0x33,0x35,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x31,0x20,0x3d,0x20,0x5f,0x34,0x33,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20, - 0x3d,0x20,0x5f,0x34,0x35,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x5f,0x34, - 0x34,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f, - 0x35,0x33,0x39,0x20,0x3d,0x20,0x6d,0x69,0x6e,0x28,0x6d,0x69,0x6e,0x28,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x28,0x64,0x6f,0x74,0x28,0x5f,0x34,0x36,0x37,0x2c,0x20,0x5f, - 0x34,0x36,0x37,0x29,0x2c,0x20,0x5f,0x35,0x30,0x33,0x20,0x2a,0x20,0x64,0x65,0x74, - 0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x39,0x29,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x64,0x6f,0x74, - 0x28,0x5f,0x34,0x38,0x32,0x2c,0x20,0x5f,0x34,0x38,0x32,0x29,0x2c,0x20,0x5f,0x35, - 0x30,0x33,0x20,0x2a,0x20,0x64,0x65,0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x29,0x29,0x29,0x2c, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x64,0x6f,0x74,0x28,0x5f,0x34,0x39,0x37, - 0x2c,0x20,0x5f,0x34,0x39,0x37,0x29,0x2c,0x20,0x5f,0x35,0x30,0x33,0x20,0x2a,0x20, - 0x64,0x65,0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x2d,0x73,0x71,0x72,0x74,0x28,0x5f,0x35, - 0x33,0x39,0x2e,0x78,0x29,0x29,0x20,0x2a,0x20,0x73,0x69,0x67,0x6e,0x28,0x5f,0x35, - 0x33,0x39,0x2e,0x79,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x73,0x64,0x66,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x28,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x64,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, - 0x20,0x61,0x62,0x73,0x28,0x64,0x29,0x20,0x2d,0x20,0x76,0x5f,0x73,0x74,0x72,0x6f, - 0x6b,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x73,0x64, - 0x66,0x28,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x61,0x2c,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x34,0x20,0x62,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x29,0x0a,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x39,0x31,0x20, - 0x3d,0x20,0x5f,0x32,0x38,0x32,0x5f,0x75,0x5f,0x61,0x61,0x66,0x20,0x2a,0x20,0x5f, - 0x32,0x38,0x32,0x5f,0x75,0x5f,0x61,0x61,0x5f,0x73,0x63,0x61,0x6c,0x65,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20, - 0x3d,0x20,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, - 0x32,0x39,0x35,0x20,0x3d,0x20,0x73,0x64,0x66,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65, - 0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f, - 0x6c,0x34,0x20,0x5f,0x33,0x31,0x30,0x20,0x3d,0x20,0x28,0x5f,0x32,0x39,0x35,0x20, - 0x3c,0x3d,0x20,0x30,0x2e,0x30,0x66,0x29,0x2e,0x78,0x78,0x78,0x78,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x34,0x20,0x5f,0x33,0x32,0x37,0x20,0x3d,0x20, - 0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x64,0x2c,0x20,0x2d,0x31,0x2e,0x30,0x66,0x2c, - 0x20,0x31,0x2e,0x30,0x66,0x29,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x30,0x66,0x29,0x2e, - 0x78,0x78,0x78,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, - 0x20,0x5f,0x33,0x33,0x34,0x20,0x3d,0x20,0x76,0x5f,0x61,0x61,0x2e,0x78,0x78,0x78, - 0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20, - 0x6c,0x65,0x72,0x70,0x28,0x6c,0x65,0x72,0x70,0x28,0x66,0x6c,0x6f,0x61,0x74,0x34, - 0x28,0x5f,0x33,0x31,0x30,0x2e,0x78,0x20,0x3f,0x20,0x62,0x2e,0x78,0x20,0x3a,0x20, - 0x61,0x2e,0x78,0x2c,0x20,0x5f,0x33,0x31,0x30,0x2e,0x79,0x20,0x3f,0x20,0x62,0x2e, - 0x79,0x20,0x3a,0x20,0x61,0x2e,0x79,0x2c,0x20,0x5f,0x33,0x31,0x30,0x2e,0x7a,0x20, - 0x3f,0x20,0x62,0x2e,0x7a,0x20,0x3a,0x20,0x61,0x2e,0x7a,0x2c,0x20,0x5f,0x33,0x31, - 0x30,0x2e,0x77,0x20,0x3f,0x20,0x62,0x2e,0x77,0x20,0x3a,0x20,0x61,0x2e,0x77,0x29, - 0x2c,0x20,0x6c,0x65,0x72,0x70,0x28,0x62,0x2c,0x20,0x61,0x2c,0x20,0x73,0x6d,0x6f, - 0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x66,0x2c,0x20,0x5f,0x32, - 0x39,0x31,0x2c,0x20,0x5f,0x32,0x39,0x35,0x29,0x2e,0x78,0x78,0x78,0x78,0x29,0x2c, - 0x20,0x5f,0x33,0x33,0x34,0x29,0x2c,0x20,0x6c,0x65,0x72,0x70,0x28,0x66,0x6c,0x6f, - 0x61,0x74,0x34,0x28,0x5f,0x33,0x32,0x37,0x2e,0x78,0x20,0x3f,0x20,0x62,0x2e,0x78, - 0x20,0x3a,0x20,0x61,0x2e,0x78,0x2c,0x20,0x5f,0x33,0x32,0x37,0x2e,0x79,0x20,0x3f, - 0x20,0x62,0x2e,0x79,0x20,0x3a,0x20,0x61,0x2e,0x79,0x2c,0x20,0x5f,0x33,0x32,0x37, - 0x2e,0x7a,0x20,0x3f,0x20,0x62,0x2e,0x7a,0x20,0x3a,0x20,0x61,0x2e,0x7a,0x2c,0x20, - 0x5f,0x33,0x32,0x37,0x2e,0x77,0x20,0x3f,0x20,0x62,0x2e,0x77,0x20,0x3a,0x20,0x61, - 0x2e,0x77,0x29,0x2c,0x20,0x6c,0x65,0x72,0x70,0x28,0x62,0x2c,0x20,0x61,0x2c,0x20, - 0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x66,0x2c, - 0x20,0x5f,0x32,0x39,0x31,0x2c,0x20,0x64,0x29,0x2e,0x78,0x78,0x78,0x78,0x29,0x2c, - 0x20,0x5f,0x33,0x33,0x34,0x29,0x2c,0x20,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x2e,0x78, - 0x78,0x78,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, - 0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61, - 0x74,0x34,0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x28,0x66,0x6c,0x6f,0x61,0x74,0x34, - 0x20,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70, - 0x6f,0x73,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x75,0x76,0x2c,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x29,0x0a,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x35,0x37,0x37,0x20, - 0x3d,0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x2e,0x53,0x61,0x6d,0x70, - 0x6c,0x65,0x28,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x5f,0x73,0x61, - 0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x75, - 0x76,0x2e,0x78,0x20,0x2a,0x20,0x35,0x2e,0x30,0x66,0x2c,0x20,0x75,0x76,0x2e,0x79, - 0x20,0x2a,0x20,0x33,0x2e,0x37,0x35,0x66,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x66, - 0x29,0x20,0x2b,0x20,0x5f,0x35,0x37,0x32,0x5f,0x74,0x69,0x6d,0x65,0x2e,0x78,0x78, + 0x5f,0x37,0x20,0x3d,0x20,0x5f,0x34,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x35,0x30,0x36,0x20,0x3d,0x20,0x64,0x65,0x74,0x32, + 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f,0x34,0x34,0x37,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x39,0x20,0x3d,0x20,0x5f,0x34,0x33,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20, + 0x5f,0x34,0x35,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x5f,0x34,0x33,0x39, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x5f,0x34,0x35,0x35,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x33,0x20,0x3d,0x20,0x5f,0x34,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x32,0x20,0x5f,0x35,0x34,0x32,0x20,0x3d,0x20,0x6d,0x69,0x6e,0x28, + 0x6d,0x69,0x6e,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x64,0x6f,0x74,0x28,0x5f, + 0x34,0x37,0x30,0x2c,0x20,0x5f,0x34,0x37,0x30,0x29,0x2c,0x20,0x5f,0x35,0x30,0x36, + 0x20,0x2a,0x20,0x64,0x65,0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x29,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x28,0x64,0x6f,0x74,0x28,0x5f,0x34,0x38,0x35,0x2c,0x20,0x5f,0x34,0x38, + 0x35,0x29,0x2c,0x20,0x5f,0x35,0x30,0x36,0x20,0x2a,0x20,0x64,0x65,0x74,0x32,0x28, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x31,0x29,0x29,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x64,0x6f, + 0x74,0x28,0x5f,0x35,0x30,0x30,0x2c,0x20,0x5f,0x35,0x30,0x30,0x29,0x2c,0x20,0x5f, + 0x35,0x30,0x36,0x20,0x2a,0x20,0x64,0x65,0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x29,0x29,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x2d,0x73, + 0x71,0x72,0x74,0x28,0x5f,0x35,0x34,0x32,0x2e,0x78,0x29,0x29,0x20,0x2a,0x20,0x73, + 0x69,0x67,0x6e,0x28,0x5f,0x35,0x34,0x32,0x2e,0x79,0x29,0x3b,0x0a,0x7d,0x0a,0x0a, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x64,0x66,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65, + 0x28,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x62,0x73,0x28,0x64,0x29,0x20,0x2d,0x20, + 0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f, + 0x61,0x74,0x34,0x20,0x73,0x64,0x66,0x28,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x61, + 0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x62,0x2c,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x64,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x33,0x30,0x33,0x20,0x3d,0x20,0x6c,0x65, + 0x72,0x70,0x28,0x62,0x2c,0x20,0x61,0x2c,0x20,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73, + 0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x66,0x2c,0x20,0x76,0x5f,0x61,0x61,0x2c,0x20, + 0x73,0x64,0x66,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x29,0x29,0x2e,0x78,0x78,0x78,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f, + 0x6f,0x6c,0x34,0x20,0x5f,0x33,0x32,0x37,0x20,0x3d,0x20,0x28,0x63,0x6c,0x61,0x6d, + 0x70,0x28,0x64,0x2c,0x20,0x2d,0x31,0x2e,0x30,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66, + 0x29,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x30,0x66,0x29,0x2e,0x78,0x78,0x78,0x78,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x33,0x33,0x35, + 0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x76,0x5f,0x61,0x61,0x20,0x3e,0x20, + 0x30,0x2e,0x30,0x66,0x29,0x2e,0x78,0x78,0x78,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x6c,0x65,0x72,0x70,0x28,0x6c,0x65, + 0x72,0x70,0x28,0x5f,0x33,0x30,0x33,0x2c,0x20,0x5f,0x33,0x30,0x33,0x2c,0x20,0x5f, + 0x33,0x33,0x35,0x29,0x2c,0x20,0x6c,0x65,0x72,0x70,0x28,0x66,0x6c,0x6f,0x61,0x74, + 0x34,0x28,0x5f,0x33,0x32,0x37,0x2e,0x78,0x20,0x3f,0x20,0x62,0x2e,0x78,0x20,0x3a, + 0x20,0x61,0x2e,0x78,0x2c,0x20,0x5f,0x33,0x32,0x37,0x2e,0x79,0x20,0x3f,0x20,0x62, + 0x2e,0x79,0x20,0x3a,0x20,0x61,0x2e,0x79,0x2c,0x20,0x5f,0x33,0x32,0x37,0x2e,0x7a, + 0x20,0x3f,0x20,0x62,0x2e,0x7a,0x20,0x3a,0x20,0x61,0x2e,0x7a,0x2c,0x20,0x5f,0x33, + 0x32,0x37,0x2e,0x77,0x20,0x3f,0x20,0x62,0x2e,0x77,0x20,0x3a,0x20,0x61,0x2e,0x77, + 0x29,0x2c,0x20,0x6c,0x65,0x72,0x70,0x28,0x62,0x2c,0x20,0x61,0x2c,0x20,0x73,0x6d, + 0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x66,0x2c,0x20,0x76, + 0x5f,0x61,0x61,0x2c,0x20,0x64,0x29,0x2e,0x78,0x78,0x78,0x78,0x29,0x2c,0x20,0x5f, + 0x33,0x33,0x35,0x29,0x2c,0x20,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x2e,0x78,0x78,0x78, + 0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72, + 0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x68,0x65,0x69, + 0x67,0x68,0x74,0x6d,0x61,0x70,0x28,0x54,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x44, + 0x3c,0x66,0x6c,0x6f,0x61,0x74,0x34,0x3e,0x20,0x74,0x65,0x78,0x2c,0x20,0x53,0x61, + 0x6d,0x70,0x6c,0x65,0x72,0x53,0x74,0x61,0x74,0x65,0x20,0x5f,0x74,0x65,0x78,0x5f, + 0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, + 0x75,0x76,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, + 0x20,0x5f,0x35,0x37,0x34,0x20,0x3d,0x20,0x74,0x65,0x78,0x2e,0x53,0x61,0x6d,0x70, + 0x6c,0x65,0x28,0x5f,0x74,0x65,0x78,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c, + 0x20,0x75,0x76,0x2c,0x20,0x69,0x6e,0x74,0x32,0x28,0x30,0x2c,0x20,0x2d,0x31,0x29, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x35,0x37, - 0x39,0x20,0x3d,0x20,0x5f,0x35,0x37,0x37,0x2e,0x78,0x20,0x2d,0x20,0x30,0x2e,0x35, - 0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x63,0x20, - 0x3d,0x20,0x77,0x61,0x74,0x65,0x72,0x5f,0x74,0x65,0x78,0x2e,0x53,0x61,0x6d,0x70, - 0x6c,0x65,0x28,0x5f,0x77,0x61,0x74,0x65,0x72,0x5f,0x74,0x65,0x78,0x5f,0x73,0x61, - 0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x75,0x76,0x20,0x2b,0x20,0x28,0x28,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x28,0x30,0x2e,0x30,0x30,0x31,0x35,0x36,0x32,0x35,0x30,0x30, - 0x30,0x32,0x33,0x32,0x38,0x33,0x30,0x36,0x34,0x33,0x36,0x35,0x33,0x38,0x36,0x39, - 0x36,0x32,0x38,0x39,0x30,0x36,0x32,0x35,0x66,0x2c,0x20,0x30,0x2e,0x30,0x30,0x32, - 0x30,0x38,0x33,0x33,0x33,0x33,0x34,0x34,0x31,0x39,0x38,0x37,0x36,0x33,0x33,0x37, - 0x30,0x35,0x31,0x33,0x39,0x31,0x36,0x30,0x31,0x35,0x36,0x32,0x35,0x66,0x29,0x20, - 0x2a,0x20,0x5f,0x35,0x37,0x39,0x29,0x20,0x2a,0x20,0x5f,0x35,0x37,0x32,0x5f,0x61, - 0x6d,0x70,0x6c,0x69,0x74,0x75,0x64,0x65,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x36,0x30,0x32,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x69,0x66,0x20,0x28,0x5f,0x35,0x37,0x32,0x5f,0x73,0x68,0x6f,0x77,0x5f,0x6e, - 0x6f,0x69,0x73,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x66,0x29,0x0a,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x30,0x32,0x20, - 0x3d,0x20,0x5f,0x35,0x37,0x39,0x2e,0x78,0x78,0x78,0x78,0x20,0x2b,0x20,0x30,0x2e, - 0x35,0x66,0x2e,0x78,0x78,0x78,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x35,0x20,0x3d,0x20,0x5f,0x35,0x37,0x34,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x74,0x65, + 0x78,0x2e,0x53,0x61,0x6d,0x70,0x6c,0x65,0x28,0x5f,0x74,0x65,0x78,0x5f,0x73,0x61, + 0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x75,0x76,0x2c,0x20,0x69,0x6e,0x74,0x32,0x28, + 0x2d,0x31,0x2c,0x20,0x31,0x29,0x29,0x2e,0x78,0x20,0x2d,0x20,0x5f,0x35,0x37,0x35, + 0x2c,0x20,0x74,0x65,0x78,0x2e,0x53,0x61,0x6d,0x70,0x6c,0x65,0x28,0x5f,0x74,0x65, + 0x78,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x75,0x76,0x2c,0x20,0x69, + 0x6e,0x74,0x32,0x28,0x31,0x2c,0x20,0x31,0x29,0x29,0x2e,0x78,0x20,0x2d,0x20,0x5f, + 0x35,0x37,0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, + 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x74,0x6f,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x28, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x6e,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x28,0x6e, + 0x20,0x2a,0x20,0x30,0x2e,0x35,0x66,0x29,0x20,0x2b,0x20,0x30,0x2e,0x35,0x66,0x2e, + 0x78,0x78,0x2c,0x20,0x31,0x2e,0x30,0x66,0x2c,0x20,0x31,0x2e,0x30,0x66,0x29,0x3b, + 0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x73,0x68,0x61,0x64,0x65, + 0x72,0x28,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x6f,0x73,0x2c,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x20,0x75,0x76,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x75,0x76,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x36,0x30,0x34,0x20,0x3d, + 0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x68,0x65,0x69, + 0x67,0x68,0x74,0x6d,0x61,0x70,0x28,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78, + 0x2c,0x20,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x5f,0x73,0x61,0x6d, + 0x70,0x6c,0x65,0x72,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x20,0x3d,0x20,0x75,0x76,0x20,0x2b,0x20,0x28,0x28,0x5f,0x36,0x30,0x34,0x20,0x2a, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e,0x30,0x30,0x36,0x32,0x35,0x30, + 0x30,0x30,0x30,0x30,0x39,0x33,0x31,0x33,0x32,0x32,0x35,0x37,0x34,0x36,0x31,0x35, + 0x34,0x37,0x38,0x35,0x31,0x35,0x36,0x32,0x35,0x66,0x2c,0x20,0x30,0x2e,0x30,0x30, + 0x38,0x33,0x33,0x33,0x33,0x33,0x33,0x37,0x36,0x37,0x39,0x35,0x30,0x35,0x33,0x34, + 0x38,0x32,0x30,0x35,0x35,0x36,0x36,0x34,0x30,0x36,0x32,0x35,0x66,0x29,0x29,0x20, + 0x2a,0x20,0x31,0x30,0x2e,0x30,0x66,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x32,0x20,0x5f,0x36,0x31,0x35,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d, + 0x61,0x6c,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x68,0x65,0x69,0x67,0x68,0x74,0x6d,0x61, + 0x70,0x28,0x77,0x61,0x76,0x65,0x6c,0x65,0x74,0x73,0x5f,0x74,0x65,0x78,0x2c,0x20, + 0x5f,0x77,0x61,0x76,0x65,0x6c,0x65,0x74,0x73,0x5f,0x74,0x65,0x78,0x5f,0x73,0x61, + 0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x36,0x30,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d, + 0x20,0x5f,0x36,0x31,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x20,0x5f,0x36,0x33,0x31,0x20,0x3d,0x20,0x5f,0x36,0x30,0x34,0x20,0x2b,0x20, + 0x5f,0x36,0x31,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, + 0x20,0x63,0x20,0x3d,0x20,0x6c,0x65,0x72,0x70,0x28,0x73,0x63,0x65,0x6e,0x65,0x5f, + 0x74,0x65,0x78,0x2e,0x53,0x61,0x6d,0x70,0x6c,0x65,0x28,0x5f,0x73,0x63,0x65,0x6e, + 0x65,0x5f,0x74,0x65,0x78,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x75, + 0x76,0x20,0x2b,0x20,0x28,0x28,0x5f,0x36,0x33,0x31,0x20,0x2a,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x28,0x30,0x2e,0x30,0x30,0x36,0x32,0x35,0x30,0x30,0x30,0x30,0x30, + 0x39,0x33,0x31,0x33,0x32,0x32,0x35,0x37,0x34,0x36,0x31,0x35,0x34,0x37,0x38,0x35, + 0x31,0x35,0x36,0x32,0x35,0x66,0x2c,0x20,0x30,0x2e,0x30,0x30,0x38,0x33,0x33,0x33, + 0x33,0x33,0x33,0x37,0x36,0x37,0x39,0x35,0x30,0x35,0x33,0x34,0x38,0x32,0x30,0x35, + 0x35,0x36,0x36,0x34,0x30,0x36,0x32,0x35,0x66,0x29,0x29,0x20,0x2a,0x20,0x31,0x30, + 0x2e,0x30,0x66,0x29,0x29,0x2c,0x20,0x31,0x2e,0x30,0x66,0x2e,0x78,0x78,0x78,0x78, + 0x2c,0x20,0x28,0x28,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x5f,0x36,0x33,0x31,0x29, + 0x20,0x3e,0x20,0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x39,0x38, + 0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x66, + 0x29,0x20,0x3f,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34, + 0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32, + 0x35,0x66,0x20,0x3a,0x20,0x30,0x2e,0x30,0x66,0x29,0x2e,0x78,0x78,0x78,0x78,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x36,0x35, + 0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x35,0x31,0x5f, + 0x73,0x68,0x6f,0x77,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x73,0x20,0x3e,0x20,0x30, + 0x2e,0x30,0x66,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x34,0x20,0x3d,0x20,0x5f,0x36,0x30,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35, + 0x20,0x3d,0x20,0x5f,0x36,0x31,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x5f,0x36,0x35,0x36,0x20,0x3d,0x20,0x6c,0x65,0x72,0x70,0x28,0x6e,0x6f,0x72, + 0x6d,0x61,0x6c,0x5f,0x74,0x6f,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x34,0x29,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x74,0x6f, + 0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c, + 0x20,0x30,0x2e,0x32,0x35,0x66,0x2e,0x78,0x78,0x78,0x78,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x35,0x36,0x20, + 0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63, + 0x20,0x3d,0x20,0x5f,0x36,0x35,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x34,0x20,0x5f,0x36,0x37,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x5f,0x36,0x35,0x31,0x5f,0x73,0x68,0x6f,0x77,0x5f,0x6e,0x6f,0x69,0x73, + 0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x66,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x37,0x33,0x20,0x3d,0x20,0x6e, + 0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x2e,0x53,0x61,0x6d,0x70,0x6c,0x65,0x28, + 0x5f,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x5f,0x73,0x61,0x6d,0x70,0x6c, + 0x65,0x72,0x2c,0x20,0x75,0x76,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, 0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x30,0x32,0x20,0x3d,0x20,0x63,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x37,0x33,0x20,0x3d,0x20,0x63,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x36, - 0x30,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f, - 0x36,0x30,0x32,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x66,0x72,0x61, + 0x37,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f, + 0x36,0x37,0x33,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x66,0x72,0x61, 0x67,0x5f,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62, - 0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x31,0x38,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70, + 0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x38,0x39,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70, 0x65,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x30,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62, - 0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x32,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, - 0x20,0x28,0x5f,0x36,0x31,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x32,0x34,0x20,0x3d,0x20,0x76,0x5f,0x74, + 0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x39,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x5f,0x36,0x38,0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x39,0x35,0x20,0x3d,0x20,0x76,0x5f,0x74, 0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x31,0x39,0x36,0x30,0x37,0x38, 0x34,0x34,0x32,0x39,0x36,0x38,0x34,0x32,0x38,0x31,0x33,0x34,0x39,0x31,0x38,0x32, 0x31,0x32,0x38,0x39,0x30,0x36,0x32,0x35,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, 0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x32,0x34,0x20,0x3d,0x20,0x5f, - 0x36,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62, - 0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x32,0x37,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x39,0x35,0x20,0x3d,0x20,0x5f, + 0x36,0x38,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62, + 0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x39,0x38,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70, 0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x31,0x39,0x36,0x30,0x37,0x38,0x34,0x34, 0x32,0x39,0x36,0x38,0x34,0x32,0x38,0x31,0x33,0x34,0x39,0x31,0x38,0x32,0x31,0x32, 0x38,0x39,0x30,0x36,0x32,0x35,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f, - 0x6c,0x20,0x5f,0x36,0x33,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x5f,0x36,0x32,0x37,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x5f,0x36,0x33,0x33,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70, + 0x6c,0x20,0x5f,0x37,0x30,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x5f,0x36,0x39,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x5f,0x37,0x30,0x34,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70, 0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x35,0x38,0x38,0x32,0x33,0x35,0x33,0x30, 0x35,0x36,0x32,0x32,0x32,0x32,0x30,0x30,0x33,0x39,0x33,0x36,0x37,0x36,0x37,0x35, 0x37,0x38,0x31,0x32,0x35,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x33,0x33,0x20,0x3d,0x20,0x5f,0x36,0x32,0x37, + 0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x30,0x34,0x20,0x3d,0x20,0x5f,0x36,0x39,0x38, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, - 0x20,0x5f,0x36,0x33,0x36,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e, + 0x20,0x5f,0x37,0x30,0x37,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e, 0x20,0x30,0x2e,0x30,0x30,0x35,0x38,0x38,0x32,0x33,0x35,0x33,0x30,0x35,0x36,0x32, 0x32,0x32,0x32,0x30,0x30,0x33,0x39,0x33,0x36,0x37,0x36,0x37,0x35,0x37,0x38,0x31, - 0x32,0x35,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36, - 0x34,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x33,0x36, + 0x32,0x35,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37, + 0x31,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x30,0x37, 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x5f,0x36,0x34,0x32,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20, + 0x5f,0x37,0x31,0x33,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20, 0x30,0x2e,0x30,0x30,0x39,0x38,0x30,0x33,0x39,0x32,0x31,0x39,0x31,0x35,0x35,0x39, 0x30,0x37,0x36,0x33,0x30,0x39,0x32,0x30,0x34,0x31,0x30,0x31,0x35,0x36,0x32,0x35, 0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, 0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x5f,0x36,0x34,0x32,0x20,0x3d,0x20,0x5f,0x36,0x33,0x36,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x34,0x35, + 0x5f,0x37,0x31,0x33,0x20,0x3d,0x20,0x5f,0x37,0x30,0x37,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x31,0x36, 0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30, 0x39,0x38,0x30,0x33,0x39,0x32,0x31,0x39,0x31,0x35,0x35,0x39,0x30,0x37,0x36,0x33, 0x30,0x39,0x32,0x30,0x34,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x66,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x35,0x31,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x34,0x35,0x29,0x0a,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x35,0x31,0x20,0x3d, + 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x32,0x32,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x31,0x36,0x29,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x32,0x32,0x20,0x3d, 0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x31,0x33,0x37, 0x32,0x35,0x34,0x39,0x30,0x33,0x30,0x39,0x32,0x39,0x38,0x30,0x33,0x38,0x34,0x38, 0x32,0x36,0x36,0x36,0x30,0x31,0x35,0x36,0x32,0x35,0x66,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x35,0x31,0x20,0x3d, - 0x20,0x5f,0x36,0x34,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x35,0x34,0x20,0x3d,0x20,0x76,0x5f,0x74, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x32,0x32,0x20,0x3d, + 0x20,0x5f,0x37,0x31,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x32,0x35,0x20,0x3d,0x20,0x76,0x5f,0x74, 0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x31,0x33,0x37,0x32,0x35,0x34,0x39, 0x30,0x33,0x30,0x39,0x32,0x39,0x38,0x30,0x33,0x38,0x34,0x38,0x32,0x36,0x36,0x36, 0x30,0x31,0x35,0x36,0x32,0x35,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f, - 0x6c,0x20,0x5f,0x36,0x36,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x5f,0x36,0x35,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x5f,0x36,0x36,0x30,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70, + 0x6c,0x20,0x5f,0x37,0x33,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x5f,0x37,0x32,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x5f,0x37,0x33,0x31,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70, 0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x31,0x37,0x36,0x34,0x37,0x30,0x35,0x39,0x36, 0x33,0x34,0x33,0x32,0x37,0x38,0x38,0x38,0x34,0x38,0x38,0x37,0x36,0x39,0x35,0x33, 0x31,0x32,0x35,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x5f,0x36,0x36,0x30,0x20,0x3d,0x20,0x5f,0x36,0x35,0x34,0x3b,0x0a, + 0x20,0x20,0x20,0x5f,0x37,0x33,0x31,0x20,0x3d,0x20,0x5f,0x37,0x32,0x35,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f, - 0x36,0x36,0x33,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30, + 0x37,0x33,0x34,0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30, 0x2e,0x30,0x31,0x37,0x36,0x34,0x37,0x30,0x35,0x39,0x36,0x33,0x34,0x33,0x32,0x37, 0x38,0x38,0x38,0x34,0x38,0x38,0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x66,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x36,0x39,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x36,0x33,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x36,0x39, + 0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x34,0x30,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x33,0x34,0x29,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x34,0x30, 0x20,0x3d,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x32, 0x31,0x35,0x36,0x38,0x36,0x32,0x38,0x30,0x32,0x38,0x30,0x33,0x35,0x31,0x36,0x33, 0x38,0x37,0x39,0x33,0x39,0x34,0x35,0x33,0x31,0x32,0x35,0x66,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x36,0x39,0x20, - 0x3d,0x20,0x5f,0x36,0x36,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x34,0x30,0x20, + 0x3d,0x20,0x5f,0x37,0x33,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x63,0x20,0x3d,0x20,0x30,0x2e,0x30, 0x66,0x2e,0x78,0x78,0x78,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x34,0x20,0x5f,0x36,0x37,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, - 0x28,0x21,0x28,0x5f,0x36,0x32,0x34,0x20,0x26,0x26,0x20,0x5f,0x36,0x33,0x33,0x29, + 0x74,0x34,0x20,0x5f,0x37,0x34,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, + 0x28,0x21,0x28,0x5f,0x36,0x39,0x35,0x20,0x26,0x26,0x20,0x5f,0x37,0x30,0x34,0x29, 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x76, 0x5f,0x75,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x5f,0x32, - 0x38,0x32,0x5f,0x75,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a, + 0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x5f,0x37, + 0x35,0x36,0x5f,0x75,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a, 0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x75,0x5f,0x69,0x6d, 0x61,0x67,0x65,0x2e,0x53,0x61,0x6d,0x70,0x6c,0x65,0x28,0x5f,0x75,0x5f,0x69,0x6d, 0x61,0x67,0x65,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2c,0x20,0x73,0x6d,0x6f, 0x6f,0x74,0x68,0x5f,0x75,0x76,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x31,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x36,0x37,0x36,0x20,0x3d,0x20,0x64,0x65,0x5f,0x67,0x61,0x6d,0x6d,0x61, + 0x20,0x5f,0x37,0x34,0x37,0x20,0x3d,0x20,0x64,0x65,0x5f,0x67,0x61,0x6d,0x6d,0x61, 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, 0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x37,0x36,0x20,0x3d,0x20,0x63, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x34,0x37,0x20,0x3d,0x20,0x63, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20, - 0x5f,0x36,0x37,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, - 0x20,0x5f,0x36,0x39,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, - 0x36,0x32,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x5f,0x37,0x34,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, + 0x20,0x5f,0x37,0x37,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, + 0x36,0x39,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x33,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20, @@ -3464,30 +3718,30 @@ static const char shallow_water_fs_source_hlsl5[10494] = { 0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20, 0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x5f,0x36,0x39,0x37,0x20,0x3d,0x20,0x67,0x61,0x6d,0x6d,0x61,0x28, + 0x20,0x20,0x20,0x5f,0x37,0x37,0x31,0x20,0x3d,0x20,0x67,0x61,0x6d,0x6d,0x61,0x28, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x39,0x37,0x20,0x3d,0x20,0x63,0x3b, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x37,0x31,0x20,0x3d,0x20,0x63,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f, - 0x36,0x39,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, - 0x5f,0x37,0x31,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36, - 0x33,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x5f,0x37,0x31,0x33,0x20,0x3d,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x20,0x2a, + 0x37,0x37,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, + 0x5f,0x37,0x38,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37, + 0x30,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x5f,0x37,0x38,0x37,0x20,0x3d,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x20,0x2a, 0x20,0x63,0x2e,0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x5f,0x37,0x31,0x33,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x34,0x20,0x5f,0x37,0x32, - 0x36,0x20,0x3d,0x20,0x5f,0x36,0x36,0x30,0x2e,0x78,0x78,0x78,0x78,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x5f,0x37, - 0x32,0x36,0x2e,0x78,0x20,0x3f,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x2e,0x78,0x20,0x3a, - 0x20,0x5f,0x37,0x31,0x33,0x2e,0x78,0x2c,0x20,0x5f,0x37,0x32,0x36,0x2e,0x79,0x20, - 0x3f,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x2e,0x79,0x20,0x3a,0x20,0x5f,0x37,0x31,0x33, - 0x2e,0x79,0x2c,0x20,0x5f,0x37,0x32,0x36,0x2e,0x7a,0x20,0x3f,0x20,0x76,0x5f,0x63, - 0x6f,0x6c,0x2e,0x7a,0x20,0x3a,0x20,0x5f,0x37,0x31,0x33,0x2e,0x7a,0x2c,0x20,0x5f, - 0x37,0x32,0x36,0x2e,0x77,0x20,0x3f,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x2e,0x77,0x20, - 0x3a,0x20,0x5f,0x37,0x31,0x33,0x2e,0x77,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x20,0x20,0x20,0x5f,0x37,0x38,0x37,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x34,0x20,0x5f,0x38,0x30, + 0x30,0x20,0x3d,0x20,0x5f,0x37,0x33,0x31,0x2e,0x78,0x78,0x78,0x78,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x5f,0x38, + 0x30,0x30,0x2e,0x78,0x20,0x3f,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x2e,0x78,0x20,0x3a, + 0x20,0x5f,0x37,0x38,0x37,0x2e,0x78,0x2c,0x20,0x5f,0x38,0x30,0x30,0x2e,0x79,0x20, + 0x3f,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x2e,0x79,0x20,0x3a,0x20,0x5f,0x37,0x38,0x37, + 0x2e,0x79,0x2c,0x20,0x5f,0x38,0x30,0x30,0x2e,0x7a,0x20,0x3f,0x20,0x76,0x5f,0x63, + 0x6f,0x6c,0x2e,0x7a,0x20,0x3a,0x20,0x5f,0x37,0x38,0x37,0x2e,0x7a,0x2c,0x20,0x5f, + 0x38,0x30,0x30,0x2e,0x77,0x20,0x3f,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x2e,0x77,0x20, + 0x3a,0x20,0x5f,0x37,0x38,0x37,0x2e,0x77,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x20,0x64,0x20,0x3d,0x20,0x30,0x2e,0x30,0x66,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x34,0x32,0x29,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x31,0x33,0x29,0x0a,0x20,0x20,0x20, 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x76,0x5f,0x70,0x6f, 0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, @@ -3496,14 +3750,14 @@ static const char shallow_water_fs_source_hlsl5[10494] = { 0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x76,0x5f,0x62,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x76,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37,0x34,0x34,0x20, + 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x38,0x31,0x38,0x20, 0x3d,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x62,0x6f,0x78,0x28,0x70, 0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d,0x20, - 0x5f,0x37,0x34,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x5f,0x38,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x35,0x31,0x29,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x32,0x32,0x29,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x31,0x30,0x20,0x3d,0x20,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20, @@ -3512,11 +3766,11 @@ static const char shallow_water_fs_source_hlsl5[10494] = { 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x76,0x5f,0x62, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x37,0x35,0x35,0x20,0x3d,0x20,0x64,0x69,0x73,0x74,0x61, + 0x6f,0x61,0x74,0x20,0x5f,0x38,0x32,0x39,0x20,0x3d,0x20,0x64,0x69,0x73,0x74,0x61, 0x6e,0x63,0x65,0x5f,0x73,0x65,0x67,0x6d,0x65,0x6e,0x74,0x28,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x31,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x2c,0x20, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d,0x20,0x5f,0x37,0x35,0x35,0x3b, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d,0x20,0x5f,0x38,0x32,0x39,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x76, 0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, @@ -3525,13 +3779,13 @@ static const char shallow_water_fs_source_hlsl5[10494] = { 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61, 0x6d,0x5f,0x31,0x35,0x20,0x3d,0x20,0x76,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d,0x20,0x6d,0x69,0x6e,0x28, - 0x5f,0x37,0x35,0x35,0x2c,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x73, + 0x5f,0x38,0x32,0x39,0x2c,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x73, 0x65,0x67,0x6d,0x65,0x6e,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x2c, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x31,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x36,0x39,0x29,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x34,0x30,0x29,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x20,0x3d,0x20,0x76,0x5f, @@ -3550,9 +3804,9 @@ static const char shallow_water_fs_source_hlsl5[10494] = { 0x72,0x61,0x6d,0x5f,0x31,0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x34,0x20,0x5f,0x37,0x38,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x28,0x28,0x21,0x5f,0x36,0x32,0x34,0x29,0x20,0x26,0x26,0x20,0x28,0x21,0x5f,0x36, - 0x33,0x33,0x29,0x29,0x20,0x26,0x26,0x20,0x28,0x21,0x5f,0x36,0x36,0x30,0x29,0x29, + 0x34,0x20,0x5f,0x38,0x36,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x28,0x28,0x21,0x5f,0x36,0x39,0x35,0x29,0x20,0x26,0x26,0x20,0x28,0x21,0x5f,0x37, + 0x30,0x34,0x29,0x29,0x20,0x26,0x26,0x20,0x28,0x21,0x5f,0x37,0x33,0x31,0x29,0x29, 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20,0x3d, 0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, @@ -3560,73 +3814,75 @@ static const char shallow_water_fs_source_hlsl5[10494] = { 0x63,0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20,0x64,0x20, 0x2d,0x20,0x76,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x37,0x39,0x38,0x20, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x38,0x37,0x32,0x20, 0x3d,0x20,0x73,0x64,0x66,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x32,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x38, - 0x36,0x20,0x3d,0x20,0x5f,0x37,0x39,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x32,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x38,0x36, + 0x30,0x20,0x3d,0x20,0x5f,0x38,0x37,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x38,0x36,0x20,0x3d,0x20,0x63,0x3b, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x38,0x36,0x30,0x20,0x3d,0x20,0x63,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x34,0x20,0x5f,0x38,0x30,0x35,0x20,0x3d,0x20,0x5f,0x37,0x38,0x36,0x20,0x2a,0x20, + 0x34,0x20,0x5f,0x38,0x37,0x39,0x20,0x3d,0x20,0x5f,0x38,0x36,0x30,0x20,0x2a,0x20, 0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d, - 0x20,0x5f,0x38,0x30,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x5f,0x38,0x30, - 0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61, + 0x20,0x5f,0x38,0x37,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x5f,0x38,0x37, + 0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x35,0x20,0x3d,0x20,0x28,0x76,0x5f,0x70,0x6f,0x73,0x48,0x20,0x2b,0x20, - 0x31,0x2e,0x30,0x66,0x2e,0x78,0x78,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x66,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x36,0x20,0x3d,0x20,0x76,0x5f,0x75,0x73,0x65,0x72,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x38,0x32,0x31,0x20,0x3d, - 0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x38,0x32,0x31,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x38,0x32,0x31,0x2e,0x77,0x20,0x3d,0x3d, - 0x20,0x30,0x2e,0x30,0x66,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d, - 0x20,0x63,0x3b,0x0a,0x7d,0x0a,0x0a,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f, - 0x73,0x73,0x5f,0x4f,0x75,0x74,0x70,0x75,0x74,0x20,0x6d,0x61,0x69,0x6e,0x28,0x53, - 0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x49,0x6e,0x70,0x75,0x74, - 0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x29,0x0a,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x20,0x3d,0x20,0x73, - 0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x73,0x74,0x72, - 0x6f,0x6b,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x61,0x61,0x20,0x3d,0x20, - 0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x61,0x61, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x20,0x3d,0x20,0x73, - 0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x66,0x69,0x6c, - 0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3d,0x20, - 0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x74,0x79, - 0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x75,0x76,0x20,0x3d,0x20,0x73, - 0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x75,0x76,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x20,0x3d,0x20,0x73,0x74,0x61, - 0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x63,0x6f,0x6c,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x76,0x5f,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x67, - 0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x76,0x5f,0x61,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69, - 0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f, - 0x62,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e, - 0x76,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x63,0x20,0x3d,0x20,0x73, - 0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x63,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x76,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x20,0x3d,0x20,0x73, - 0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x72,0x61,0x64, - 0x69,0x75,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61, - 0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76, - 0x5f,0x61,0x6c,0x70,0x68,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x70,0x6f, - 0x73,0x48,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74, - 0x2e,0x76,0x5f,0x70,0x6f,0x73,0x48,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x75, - 0x73,0x65,0x72,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75, - 0x74,0x2e,0x76,0x5f,0x75,0x73,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72, - 0x61,0x67,0x5f,0x6d,0x61,0x69,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x53, + 0x5f,0x32,0x35,0x20,0x3d,0x20,0x28,0x28,0x76,0x5f,0x70,0x6f,0x73,0x48,0x20,0x2b, + 0x20,0x31,0x2e,0x30,0x66,0x2e,0x78,0x78,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x66, + 0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x2e,0x30,0x66,0x2c, + 0x20,0x2d,0x31,0x2e,0x30,0x66,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x20,0x3d,0x20,0x76, + 0x5f,0x75,0x73,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x34,0x20,0x5f,0x38,0x39,0x37,0x20,0x3d,0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x28, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x32,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x2c,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d, + 0x20,0x5f,0x38,0x39,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, + 0x38,0x39,0x37,0x2e,0x77,0x20,0x3d,0x3d,0x20,0x30,0x2e,0x30,0x66,0x29,0x0a,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73, + 0x63,0x61,0x72,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x7d,0x0a,0x0a,0x53, 0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x4f,0x75,0x74,0x70,0x75, - 0x74,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74, - 0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x61, - 0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x00, + 0x74,0x20,0x6d,0x61,0x69,0x6e,0x28,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f, + 0x73,0x73,0x5f,0x49,0x6e,0x70,0x75,0x74,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69, + 0x6e,0x70,0x75,0x74,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x73,0x74, + 0x72,0x6f,0x6b,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70, + 0x75,0x74,0x2e,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x76,0x5f,0x61,0x61,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e, + 0x70,0x75,0x74,0x2e,0x76,0x5f,0x61,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f, + 0x66,0x69,0x6c,0x6c,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70, + 0x75,0x74,0x2e,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, + 0x5f,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e, + 0x70,0x75,0x74,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x76,0x5f,0x75,0x76,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70, + 0x75,0x74,0x2e,0x76,0x5f,0x75,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x63, + 0x6f,0x6c,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74, + 0x2e,0x76,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x70,0x6f, + 0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e, + 0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x61,0x20,0x3d, + 0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x61, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x62,0x20,0x3d,0x20,0x73,0x74,0x61,0x67, + 0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x76,0x5f,0x63,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70, + 0x75,0x74,0x2e,0x76,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x72,0x61, + 0x64,0x69,0x75,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70, + 0x75,0x74,0x2e,0x76,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65, + 0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x76,0x5f,0x70,0x6f,0x73,0x48,0x20,0x3d,0x20,0x73,0x74,0x61, + 0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x48,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x75,0x73,0x65,0x72,0x20,0x3d,0x20,0x73,0x74, + 0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x75,0x73,0x65,0x72, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x6d,0x61,0x69,0x6e,0x28, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f, + 0x73,0x73,0x5f,0x4f,0x75,0x74,0x70,0x75,0x74,0x20,0x73,0x74,0x61,0x67,0x65,0x5f, + 0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67, + 0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x20, + 0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, + 0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75, + 0x74,0x3b,0x0a,0x7d,0x0a,0x00, }; /* #include @@ -3644,10 +3900,10 @@ static const char shallow_water_fs_source_hlsl5[10494] = { float4 v_col [[user(locn5)]]; float v_radius [[user(locn6)]]; float v_stroke [[user(locn7)]]; - float v_type [[user(locn8)]]; - float v_alpha [[user(locn9)]]; - float v_fill [[user(locn10)]]; - float v_aa [[user(locn11)]]; + float v_aa [[user(locn8)]]; + float v_type [[user(locn9)]]; + float v_alpha [[user(locn10)]]; + float v_fill [[user(locn11)]]; float2 v_posH [[user(locn12)]]; float4 v_user [[user(locn13)]]; float4 gl_Position [[position]]; @@ -3664,8 +3920,9 @@ static const char shallow_water_fs_source_hlsl5[10494] = { float4 in_col [[attribute(6)]]; float in_radius [[attribute(7)]]; float in_stroke [[attribute(8)]]; - float4 in_params [[attribute(9)]]; - float4 in_user_params [[attribute(10)]]; + float in_aa [[attribute(9)]]; + float4 in_params [[attribute(10)]]; + float4 in_user_params [[attribute(11)]]; }; vertex main0_out main0(main0_in in [[stage_in]]) @@ -3679,10 +3936,10 @@ static const char shallow_water_fs_source_hlsl5[10494] = { out.v_col = in.in_col; out.v_radius = in.in_radius; out.v_stroke = in.in_stroke; + out.v_aa = in.in_aa; out.v_type = in.in_params.x; out.v_alpha = in.in_params.y; out.v_fill = in.in_params.z; - out.v_aa = in.in_params.w; out.gl_Position = float4(in.in_posH, 0.0, 1.0); out.v_posH = in.in_posH; out.v_user = in.in_user_params; @@ -3690,7 +3947,7 @@ static const char shallow_water_fs_source_hlsl5[10494] = { } */ -static const char shallow_water_vs_source_metal_macos[1595] = { +static const char shallow_water_vs_source_metal_macos[1624] = { 0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x6d,0x65,0x74,0x61,0x6c,0x5f, 0x73,0x74,0x64,0x6c,0x69,0x62,0x3e,0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65, 0x20,0x3c,0x73,0x69,0x6d,0x64,0x2f,0x73,0x69,0x6d,0x64,0x2e,0x68,0x3e,0x0a,0x0a, @@ -3714,13 +3971,13 @@ static const char shallow_water_vs_source_metal_macos[1595] = { 0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f, 0x73,0x74,0x72,0x6f,0x6b,0x65,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f, 0x63,0x6e,0x37,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x76,0x5f,0x61,0x61,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f, + 0x63,0x6e,0x38,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28, - 0x6c,0x6f,0x63,0x6e,0x38,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6c,0x6f,0x63,0x6e,0x39,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x20,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x20,0x5b,0x5b,0x75,0x73, - 0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x39,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x20,0x5b,0x5b, - 0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x30,0x29,0x5d,0x5d,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x61,0x61,0x20,0x5b, + 0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x20,0x5b, 0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x31,0x29,0x5d,0x5d,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x70,0x6f, 0x73,0x48,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x32, @@ -3750,47 +4007,49 @@ static const char shallow_water_vs_source_metal_macos[1595] = { 0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x37,0x29,0x5d,0x5d,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x69,0x6e,0x5f,0x73,0x74,0x72, 0x6f,0x6b,0x65,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28, - 0x38,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, - 0x20,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x5b,0x5b,0x61,0x74,0x74, - 0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x39,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x69,0x6e,0x5f,0x75,0x73,0x65,0x72,0x5f, - 0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72,0x69,0x62,0x75, - 0x74,0x65,0x28,0x31,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x76,0x65, - 0x72,0x74,0x65,0x78,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6d, - 0x61,0x69,0x6e,0x30,0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x20,0x69,0x6e, - 0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d,0x29,0x0a,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f, - 0x75,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74, - 0x2e,0x76,0x5f,0x70,0x6f,0x73,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x70, - 0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x61,0x20, - 0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f, - 0x75,0x74,0x2e,0x76,0x5f,0x62,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x62, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x63,0x20,0x3d,0x20, - 0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74, - 0x2e,0x76,0x5f,0x75,0x76,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x75,0x76, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x63,0x6f,0x6c,0x20, - 0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x20,0x3d,0x20, - 0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x20,0x3d, - 0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3d,0x20, - 0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x78,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x20, - 0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x79, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x66,0x69,0x6c,0x6c, - 0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e, - 0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x61,0x61,0x20, - 0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x77, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x67,0x6c,0x5f,0x50,0x6f,0x73, - 0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x69, - 0x6e,0x2e,0x69,0x6e,0x5f,0x70,0x6f,0x73,0x48,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20, - 0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f, - 0x70,0x6f,0x73,0x48,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x70,0x6f,0x73, - 0x48,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x75,0x73,0x65, - 0x72,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x75,0x73,0x65,0x72,0x5f,0x70, - 0x61,0x72,0x61,0x6d,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, - 0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, + 0x38,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x69,0x6e,0x5f,0x61,0x61,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74, + 0x65,0x28,0x39,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x34,0x20,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x5b,0x5b,0x61, + 0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x31,0x30,0x29,0x5d,0x5d,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x69,0x6e,0x5f,0x75,0x73, + 0x65,0x72,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72, + 0x69,0x62,0x75,0x74,0x65,0x28,0x31,0x31,0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a, + 0x0a,0x76,0x65,0x72,0x74,0x65,0x78,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75, + 0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e, + 0x20,0x69,0x6e,0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d, + 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75, + 0x74,0x20,0x6f,0x75,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x6f,0x75,0x74,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69, + 0x6e,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76, + 0x5f,0x61,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x61,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x62,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69, + 0x6e,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x63, + 0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x6f,0x75,0x74,0x2e,0x76,0x5f,0x75,0x76,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e, + 0x5f,0x75,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x63, + 0x6f,0x6c,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x63,0x6f,0x6c,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x72,0x61,0x64,0x69,0x75,0x73, + 0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b, + 0x65,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x61,0x61,0x20,0x3d, + 0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x61,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f, + 0x75,0x74,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69, + 0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x6f,0x75,0x74,0x2e,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x20,0x3d,0x20,0x69,0x6e, + 0x2e,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x79,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x20,0x3d,0x20,0x69, + 0x6e,0x2e,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x7a,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69, + 0x6f,0x6e,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x69,0x6e,0x2e,0x69, + 0x6e,0x5f,0x70,0x6f,0x73,0x48,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x70,0x6f,0x73, + 0x48,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x70,0x6f,0x73,0x48,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x75,0x73,0x65,0x72,0x20,0x3d, + 0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x75,0x73,0x65,0x72,0x5f,0x70,0x61,0x72,0x61, + 0x6d,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f, + 0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, }; /* #pragma clang diagnostic ignored "-Wmissing-prototypes" @@ -3800,18 +4059,15 @@ static const char shallow_water_vs_source_metal_macos[1595] = { using namespace metal; - struct fs_params + struct shader_uniforms { - float2 u_texture_size; - float u_aaf; - float u_aa_scale; + float show_normals; + float show_noise; }; - struct shader_uniforms + struct fs_params { - float amplitude; - float time; - float show_noise; + float2 u_texture_size; }; struct main0_out @@ -3829,10 +4085,10 @@ static const char shallow_water_vs_source_metal_macos[1595] = { float4 v_col [[user(locn5)]]; float v_radius [[user(locn6)]]; float v_stroke [[user(locn7)]]; - float v_type [[user(locn8)]]; - float v_alpha [[user(locn9)]]; - float v_fill [[user(locn10)]]; - float v_aa [[user(locn11)]]; + float v_aa [[user(locn8)]]; + float v_type [[user(locn9)]]; + float v_alpha [[user(locn10)]]; + float v_fill [[user(locn11)]]; float2 v_posH [[user(locn12)]]; float4 v_user [[user(locn13)]]; }; @@ -3840,8 +4096,8 @@ static const char shallow_water_vs_source_metal_macos[1595] = { static inline __attribute__((always_inline)) float2 smooth_uv(thread const float2& uv, thread const float2& texture_size) { - float2 _204 = floor(fma(uv, texture_size, float2(0.5))); - return (_204 + fast::clamp(fma(uv, texture_size, -_204) / fwidth(uv * texture_size), float2(-0.5), float2(0.5))) / texture_size; + float2 _216 = floor(fma(uv, texture_size, float2(0.5))); + return (_216 + fast::clamp(fma(uv, texture_size, -_216) / fwidth(uv * texture_size), float2(-0.5), float2(0.5))) / texture_size; } static inline __attribute__((always_inline)) @@ -3853,16 +4109,16 @@ static const char shallow_water_vs_source_metal_macos[1595] = { static inline __attribute__((always_inline)) float overlay(thread const float& base, thread const float& blend) { - float _104; + float _116; if (base <= 0.5) { - _104 = (2.0 * base) * blend; + _116 = (2.0 * base) * blend; } else { - _104 = fma((1.0 - base) * (-2.0), 1.0 - blend, 1.0); + _116 = fma((1.0 - base) * (-2.0), 1.0 - blend, 1.0); } - return _104; + return _116; } static inline __attribute__((always_inline)) @@ -3900,8 +4156,8 @@ static const char shallow_water_vs_source_metal_macos[1595] = { static inline __attribute__((always_inline)) float distance_aabb(thread const float2& p, thread const float2& he) { - float2 _357 = abs(p) - he; - return length(fast::max(_357, float2(0.0))) + fast::min(fast::max(_357.x, _357.y), 0.0); + float2 _360 = abs(p) - he; + return length(fast::max(_360, float2(0.0))) + fast::min(fast::max(_360.x, _360.y), 0.0); } static inline __attribute__((always_inline)) @@ -3918,42 +4174,42 @@ static const char shallow_water_vs_source_metal_macos[1595] = { static inline __attribute__((always_inline)) float safe_div(thread const float& a, thread const float& b) { - float _225; + float _237; if (b == 0.0) { - _225 = 0.0; + _237 = 0.0; } else { - _225 = a / b; + _237 = a / b; } - return _225; + return _237; } static inline __attribute__((always_inline)) float safe_len(thread const float2& v) { - float _238 = dot(v, v); - float _241; - if (_238 == 0.0) + float _250 = dot(v, v); + float _253; + if (_250 == 0.0) { - _241 = 0.0; + _253 = 0.0; } else { - _241 = sqrt(_238); + _253 = sqrt(_250); } - return _241; + return _253; } static inline __attribute__((always_inline)) float distance_segment(thread const float2& p, thread const float2& a, thread const float2& b) { - float2 _402 = b - a; - float2 _406 = p - a; - float param = dot(_406, _402); - float param_1 = dot(_402, _402); - float2 param_2 = _406 - (_402 * fast::clamp(safe_div(param, param_1), 0.0, 1.0)); + float2 _405 = b - a; + float2 _409 = p - a; + float param = dot(_409, _405); + float param_1 = dot(_405, _405); + float2 param_2 = _409 - (_405 * fast::clamp(safe_div(param, param_1), 0.0, 1.0)); return safe_len(param_2); } @@ -3966,32 +4222,32 @@ static const char shallow_water_vs_source_metal_macos[1595] = { static inline __attribute__((always_inline)) float distance_triangle(thread const float2& p, thread const float2& a, thread const float2& b, thread const float2& c) { - float2 _432 = b - a; - float2 _436 = c - b; - float2 _440 = a - c; - float2 _444 = p - a; - float2 _448 = p - b; - float2 _452 = p - c; - float param = dot(_444, _432); - float param_1 = dot(_432, _432); - float2 _467 = _444 - (_432 * fast::clamp(safe_div(param, param_1), 0.0, 1.0)); - float param_2 = dot(_448, _436); - float param_3 = dot(_436, _436); - float2 _482 = _448 - (_436 * fast::clamp(safe_div(param_2, param_3), 0.0, 1.0)); - float param_4 = dot(_452, _440); - float param_5 = dot(_440, _440); - float2 _497 = _452 - (_440 * fast::clamp(safe_div(param_4, param_5), 0.0, 1.0)); - float2 param_6 = _432; - float2 param_7 = _440; - float _503 = det2(param_6, param_7); - float2 param_8 = _444; - float2 param_9 = _432; - float2 param_10 = _448; - float2 param_11 = _436; - float2 param_12 = _452; - float2 param_13 = _440; - float2 _539 = fast::min(fast::min(float2(dot(_467, _467), _503 * det2(param_8, param_9)), float2(dot(_482, _482), _503 * det2(param_10, param_11))), float2(dot(_497, _497), _503 * det2(param_12, param_13))); - return (-sqrt(_539.x)) * sign(_539.y); + float2 _435 = b - a; + float2 _439 = c - b; + float2 _443 = a - c; + float2 _447 = p - a; + float2 _451 = p - b; + float2 _455 = p - c; + float param = dot(_447, _435); + float param_1 = dot(_435, _435); + float2 _470 = _447 - (_435 * fast::clamp(safe_div(param, param_1), 0.0, 1.0)); + float param_2 = dot(_451, _439); + float param_3 = dot(_439, _439); + float2 _485 = _451 - (_439 * fast::clamp(safe_div(param_2, param_3), 0.0, 1.0)); + float param_4 = dot(_455, _443); + float param_5 = dot(_443, _443); + float2 _500 = _455 - (_443 * fast::clamp(safe_div(param_4, param_5), 0.0, 1.0)); + float2 param_6 = _435; + float2 param_7 = _443; + float _506 = det2(param_6, param_7); + float2 param_8 = _447; + float2 param_9 = _435; + float2 param_10 = _451; + float2 param_11 = _439; + float2 param_12 = _455; + float2 param_13 = _443; + float2 _542 = fast::min(fast::min(float2(dot(_470, _470), _506 * det2(param_8, param_9)), float2(dot(_485, _485), _506 * det2(param_10, param_11))), float2(dot(_500, _500), _506 * det2(param_12, param_13))); + return (-sqrt(_542.x)) * sign(_542.y); } static inline __attribute__((always_inline)) @@ -4001,162 +4257,192 @@ static const char shallow_water_vs_source_metal_macos[1595] = { } static inline __attribute__((always_inline)) - float4 sdf(thread const float4& a, thread const float4& b, thread const float& d, thread float& v_stroke, constant fs_params& _282, thread float& v_aa, thread float4& result, thread float& v_fill) + float4 sdf(thread const float4& a, thread const float4& b, thread const float& d, thread float& v_stroke, thread float& v_aa, thread float4& result, thread float& v_fill) { - float _291 = _282.u_aaf * _282.u_aa_scale; float param = d; - float _295 = sdf_stroke(param, v_stroke); - float4 _334 = float4(v_aa); - result = mix(mix(select(a, b, bool4(_295 <= 0.0)), mix(b, a, float4(smoothstep(0.0, _291, _295))), _334), mix(select(a, b, bool4(fast::clamp(d, -1.0, 1.0) <= 0.0)), mix(b, a, float4(smoothstep(0.0, _291, d))), _334), float4(v_fill)); + float4 _303 = mix(b, a, float4(smoothstep(0.0, v_aa, sdf_stroke(param, v_stroke)))); + float4 _335 = float4(float(v_aa > 0.0)); + result = mix(mix(_303, _303, _335), mix(select(a, b, bool4(fast::clamp(d, -1.0, 1.0) <= 0.0)), mix(b, a, float4(smoothstep(0.0, v_aa, d))), _335), float4(v_fill)); return result; } static inline __attribute__((always_inline)) - float4 shader(thread const float4& color, thread const float2& pos, thread const float2& uv, thread const float4& params, texture2d noise_tex, sampler noise_texSmplr, constant shader_uniforms& _572, texture2d water_tex, sampler water_texSmplr) + float2 normal_from_heightmap(texture2d tex, sampler texSmplr, thread const float2& uv) + { + float4 _574 = tex.sample(texSmplr, uv, int2(0, -1)); + float _575 = _574.x; + return float2(tex.sample(texSmplr, uv, int2(-1, 1)).x - _575, tex.sample(texSmplr, uv, int2(1)).x - _575); + } + + static inline __attribute__((always_inline)) + float4 normal_to_color(thread const float2& n) { - float4 _577 = noise_tex.sample(noise_texSmplr, ((float2(uv.x * 5.0, uv.y * 3.75) * 0.5) + float2(_572.time))); - float _579 = _577.x - 0.5; - float4 c = water_tex.sample(water_texSmplr, (uv + ((float2(0.001562500023283064365386962890625, 0.00208333344198763370513916015625) * _579) * _572.amplitude))); - float4 _602; - if (_572.show_noise > 0.0) + return float4((n * 0.5) + float2(0.5), 1.0, 1.0); + } + + static inline __attribute__((always_inline)) + float4 shader(thread const float4& color, thread const float2& pos, thread const float2& uv, thread const float4& params, texture2d noise_tex, sampler noise_texSmplr, texture2d wavelets_tex, sampler wavelets_texSmplr, texture2d scene_tex, sampler scene_texSmplr, constant shader_uniforms& _651) + { + float2 param = uv; + float2 _604 = normal_from_heightmap(noise_tex, noise_texSmplr, param); + float2 param_1 = uv + ((_604 * float2(0.0062500000931322574615478515625, 0.008333333767950534820556640625)) * 10.0); + float2 _615 = normal_from_heightmap(wavelets_tex, wavelets_texSmplr, param_1); + float2 param_2 = _604; + float2 param_3 = _615; + float2 _631 = _604 + _615; + float4 c = mix(scene_tex.sample(scene_texSmplr, (uv + ((_631 * float2(0.0062500000931322574615478515625, 0.008333333767950534820556640625)) * 10.0))), float4(1.0), float4((length(_631) > 0.20000000298023223876953125) ? 0.100000001490116119384765625 : 0.0)); + float4 _656; + if (_651.show_normals > 0.0) + { + float2 param_4 = _604; + float2 param_5 = _615; + _656 = mix(normal_to_color(param_4), normal_to_color(param_5), float4(0.25)); + } + else { - _602 = float4(_579) + float4(0.5); + _656 = c; + } + c = _656; + float4 _673; + if (_651.show_noise > 0.0) + { + _673 = noise_tex.sample(noise_texSmplr, uv); } else { - _602 = c; + _673 = c; } - c = _602; - return _602; + c = _673; + return _673; } - fragment main0_out main0(main0_in in [[stage_in]], constant fs_params& _282 [[buffer(0)]], constant shader_uniforms& _572 [[buffer(1)]], texture2d noise_tex [[texture(0)]], texture2d water_tex [[texture(1)]], texture2d u_image [[texture(2)]], sampler noise_texSmplr [[sampler(0)]], sampler water_texSmplr [[sampler(1)]], sampler u_imageSmplr [[sampler(2)]]) + fragment main0_out main0(main0_in in [[stage_in]], constant shader_uniforms& _651 [[buffer(0)]], constant fs_params& _756 [[buffer(1)]], texture2d noise_tex [[texture(0)]], texture2d wavelets_tex [[texture(1)]], texture2d scene_tex [[texture(2)]], texture2d u_image [[texture(3)]], sampler noise_texSmplr [[sampler(0)]], sampler wavelets_texSmplr [[sampler(1)]], sampler scene_texSmplr [[sampler(2)]], sampler u_imageSmplr [[sampler(3)]]) { main0_out out = {}; - bool _618 = in.v_type >= 0.0; - bool _624; - if (_618) + bool _689 = in.v_type >= 0.0; + bool _695; + if (_689) { - _624 = in.v_type < 0.00196078442968428134918212890625; + _695 = in.v_type < 0.00196078442968428134918212890625; } else { - _624 = _618; + _695 = _689; } - bool _627 = in.v_type > 0.00196078442968428134918212890625; - bool _633; - if (_627) + bool _698 = in.v_type > 0.00196078442968428134918212890625; + bool _704; + if (_698) { - _633 = in.v_type < 0.0058823530562222003936767578125; + _704 = in.v_type < 0.0058823530562222003936767578125; } else { - _633 = _627; + _704 = _698; } - bool _636 = in.v_type > 0.0058823530562222003936767578125; - bool _642; - if (_636) + bool _707 = in.v_type > 0.0058823530562222003936767578125; + bool _713; + if (_707) { - _642 = in.v_type < 0.009803921915590763092041015625; + _713 = in.v_type < 0.009803921915590763092041015625; } else { - _642 = _636; + _713 = _707; } - bool _645 = in.v_type > 0.009803921915590763092041015625; - bool _651; - if (_645) + bool _716 = in.v_type > 0.009803921915590763092041015625; + bool _722; + if (_716) { - _651 = in.v_type < 0.013725490309298038482666015625; + _722 = in.v_type < 0.013725490309298038482666015625; } else { - _651 = _645; + _722 = _716; } - bool _654 = in.v_type > 0.013725490309298038482666015625; - bool _660; - if (_654) + bool _725 = in.v_type > 0.013725490309298038482666015625; + bool _731; + if (_725) { - _660 = in.v_type < 0.01764705963432788848876953125; + _731 = in.v_type < 0.01764705963432788848876953125; } else { - _660 = _654; + _731 = _725; } - bool _663 = in.v_type > 0.01764705963432788848876953125; - bool _669; - if (_663) + bool _734 = in.v_type > 0.01764705963432788848876953125; + bool _740; + if (_734) { - _669 = in.v_type < 0.02156862802803516387939453125; + _740 = in.v_type < 0.02156862802803516387939453125; } else { - _669 = _663; + _740 = _734; } float4 c = float4(0.0); - float4 _676; - if (!(_624 && _633)) + float4 _747; + if (!(_695 && _704)) { float2 param = in.v_uv; - float2 param_1 = _282.u_texture_size; + float2 param_1 = _756.u_texture_size; float4 param_2 = u_image.sample(u_imageSmplr, smooth_uv(param, param_1)); - _676 = de_gamma(param_2); + _747 = de_gamma(param_2); } else { - _676 = c; + _747 = c; } - c = _676; - float4 _697; - if (_624) + c = _747; + float4 _771; + if (_695) { float4 param_3 = c; float4 param_4 = in.v_col; float4 param_5 = overlay(param_3, param_4); - _697 = gamma(param_5); + _771 = gamma(param_5); } else { - _697 = c; + _771 = c; } - c = _697; - float4 _713; - if (_633) + c = _771; + float4 _787; + if (_704) { - _713 = in.v_col * c.w; + _787 = in.v_col * c.w; } else { - _713 = c; + _787 = c; } - c = select(_713, in.v_col, bool4(_660)); + c = select(_787, in.v_col, bool4(_731)); float d = 0.0; - if (_642) + if (_713) { float2 param_6 = in.v_pos; float2 param_7 = in.v_a; float2 param_8 = in.v_b; float2 param_9 = in.v_c; - float _744 = distance_box(param_6, param_7, param_8, param_9); - d = _744; + float _818 = distance_box(param_6, param_7, param_8, param_9); + d = _818; } else { - if (_651) + if (_722) { float2 param_10 = in.v_pos; float2 param_11 = in.v_a; float2 param_12 = in.v_b; - float _755 = distance_segment(param_10, param_11, param_12); - d = _755; + float _829 = distance_segment(param_10, param_11, param_12); + d = _829; float2 param_13 = in.v_pos; float2 param_14 = in.v_b; float2 param_15 = in.v_c; - d = fast::min(_755, distance_segment(param_13, param_14, param_15)); + d = fast::min(_829, distance_segment(param_13, param_14, param_15)); } else { - if (_669) + if (_740) { float2 param_16 = in.v_pos; float2 param_17 = in.v_a; @@ -4166,28 +4452,28 @@ static const char shallow_water_vs_source_metal_macos[1595] = { } } } - float4 _786; - if (((!_624) && (!_633)) && (!_660)) + float4 _860; + if (((!_695) && (!_704)) && (!_731)) { float4 param_20 = c; float4 param_21 = in.v_col; float param_22 = d - in.v_radius; - float4 _798 = sdf(param_20, param_21, param_22, in.v_stroke, _282, in.v_aa, out.result, in.v_fill); - _786 = _798; + float4 _872 = sdf(param_20, param_21, param_22, in.v_stroke, in.v_aa, out.result, in.v_fill); + _860 = _872; } else { - _786 = c; + _860 = c; } - float4 _805 = _786 * in.v_alpha; - c = _805; - float4 param_23 = _805; + float4 _879 = _860 * in.v_alpha; + c = _879; + float4 param_23 = _879; float2 param_24 = in.v_pos; - float2 param_25 = (in.v_posH + float2(1.0)) * 0.5; + float2 param_25 = ((in.v_posH + float2(1.0)) * 0.5) * float2(1.0, -1.0); float4 param_26 = in.v_user; - float4 _821 = shader(param_23, param_24, param_25, param_26, noise_tex, noise_texSmplr, _572, water_tex, water_texSmplr); - c = _821; - if (_821.w == 0.0) + float4 _897 = shader(param_23, param_24, param_25, param_26, noise_tex, noise_texSmplr, wavelets_tex, wavelets_texSmplr, scene_tex, scene_texSmplr, _651); + c = _897; + if (_897.w == 0.0) { discard_fragment(); } @@ -4196,7 +4482,7 @@ static const char shallow_water_vs_source_metal_macos[1595] = { } */ -static const char shallow_water_fs_source_metal_macos[11243] = { +static const char shallow_water_fs_source_metal_macos[12398] = { 0x23,0x70,0x72,0x61,0x67,0x6d,0x61,0x20,0x63,0x6c,0x61,0x6e,0x67,0x20,0x64,0x69, 0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x64, 0x20,0x22,0x2d,0x57,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x2d,0x70,0x72,0x6f,0x74, @@ -4205,701 +4491,773 @@ static const char shallow_water_fs_source_metal_macos[11243] = { 0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x73,0x69,0x6d,0x64,0x2f, 0x73,0x69,0x6d,0x64,0x2e,0x68,0x3e,0x0a,0x0a,0x75,0x73,0x69,0x6e,0x67,0x20,0x6e, 0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x6d,0x65,0x74,0x61,0x6c,0x3b,0x0a, - 0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d, - 0x73,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x75, - 0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x75,0x5f,0x61,0x61,0x66,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x75,0x5f,0x61,0x61,0x5f,0x73, - 0x63,0x61,0x6c,0x65,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74, - 0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x5f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73, - 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x61,0x6d,0x70, - 0x6c,0x69,0x74,0x75,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x74,0x69,0x6d,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x73,0x68,0x6f,0x77,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x3b,0x0a,0x7d,0x3b, - 0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f, - 0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, - 0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x5b,0x5b,0x63,0x6f,0x6c,0x6f,0x72,0x28,0x30, - 0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20, - 0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x70,0x6f,0x73,0x20,0x5b,0x5b,0x75,0x73, - 0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x61,0x20,0x5b,0x5b,0x75,0x73, - 0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x62,0x20,0x5b,0x5b,0x75,0x73, - 0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x32,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x63,0x20,0x5b,0x5b,0x75,0x73, - 0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x33,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x75,0x76,0x20,0x5b,0x5b,0x75, - 0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x34,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x20,0x5b, - 0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x35,0x29,0x5d,0x5d,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x72,0x61,0x64,0x69, - 0x75,0x73,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x36,0x29, + 0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x5f,0x75, + 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x73,0x68,0x6f,0x77,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x73, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x68,0x6f,0x77, + 0x5f,0x6e,0x6f,0x69,0x73,0x65,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75, + 0x63,0x74,0x20,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x0a,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x75,0x5f,0x74,0x65,0x78,0x74, + 0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74, + 0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x0a,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x72,0x65,0x73,0x75, + 0x6c,0x74,0x20,0x5b,0x5b,0x63,0x6f,0x6c,0x6f,0x72,0x28,0x30,0x29,0x5d,0x5d,0x3b, + 0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e, + 0x30,0x5f,0x69,0x6e,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x20,0x76,0x5f,0x70,0x6f,0x73,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c, + 0x6f,0x63,0x6e,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x20,0x76,0x5f,0x61,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c, + 0x6f,0x63,0x6e,0x31,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x20,0x76,0x5f,0x62,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c, + 0x6f,0x63,0x6e,0x32,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x20,0x76,0x5f,0x63,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c, + 0x6f,0x63,0x6e,0x33,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x20,0x76,0x5f,0x75,0x76,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28, + 0x6c,0x6f,0x63,0x6e,0x34,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x34,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x20,0x5b,0x5b,0x75,0x73,0x65, + 0x72,0x28,0x6c,0x6f,0x63,0x6e,0x35,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x20,0x5b, + 0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x36,0x29,0x5d,0x5d,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x73,0x74,0x72,0x6f, + 0x6b,0x65,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x37,0x29, 0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f, - 0x73,0x74,0x72,0x6f,0x6b,0x65,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f, - 0x63,0x6e,0x37,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28, - 0x6c,0x6f,0x63,0x6e,0x38,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x20,0x5b,0x5b,0x75,0x73, - 0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x39,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x20,0x5b,0x5b, - 0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x30,0x29,0x5d,0x5d,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x61,0x61,0x20,0x5b, - 0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x31,0x29,0x5d,0x5d,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x70,0x6f, - 0x73,0x48,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x32, - 0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, - 0x76,0x5f,0x75,0x73,0x65,0x72,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f, - 0x63,0x6e,0x31,0x33,0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x61, + 0x61,0x61,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x38,0x29, + 0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f, + 0x74,0x79,0x70,0x65,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e, + 0x39,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c, + 0x6f,0x63,0x6e,0x31,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x20,0x5b,0x5b,0x75,0x73,0x65, + 0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x31,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x70,0x6f,0x73,0x48,0x20,0x5b, + 0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x32,0x29,0x5d,0x5d,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x76,0x5f,0x75,0x73, + 0x65,0x72,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x33, + 0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20, + 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75, + 0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c, + 0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x73,0x6d,0x6f, + 0x6f,0x74,0x68,0x5f,0x75,0x76,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, + 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x75,0x76,0x2c,0x20, + 0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x26,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a, + 0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, + 0x5f,0x32,0x31,0x36,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x66,0x6d,0x61, + 0x28,0x75,0x76,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a, + 0x65,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e,0x35,0x29,0x29,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x5f,0x32, + 0x31,0x36,0x20,0x2b,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70, + 0x28,0x66,0x6d,0x61,0x28,0x75,0x76,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, + 0x5f,0x73,0x69,0x7a,0x65,0x2c,0x20,0x2d,0x5f,0x32,0x31,0x36,0x29,0x20,0x2f,0x20, + 0x66,0x77,0x69,0x64,0x74,0x68,0x28,0x75,0x76,0x20,0x2a,0x20,0x74,0x65,0x78,0x74, + 0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x28,0x2d,0x30,0x2e,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28, + 0x30,0x2e,0x35,0x29,0x29,0x29,0x20,0x2f,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, + 0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63, + 0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62, + 0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e, + 0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x64,0x65, + 0x5f,0x67,0x61,0x6d,0x6d,0x61,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, + 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x63,0x29,0x0a,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x34,0x28,0x70,0x6f,0x77,0x28,0x61,0x62,0x73,0x28,0x63,0x2e,0x78,0x79,0x7a, + 0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x32,0x2e,0x32,0x30,0x30,0x30, + 0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31, + 0x32,0x35,0x29,0x29,0x2c,0x20,0x63,0x2e,0x77,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73, + 0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61, + 0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61, + 0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x74,0x68,0x72,0x65,0x61,0x64, + 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x62,0x61, + 0x73,0x65,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x62,0x6c,0x65,0x6e,0x64,0x29,0x0a,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x31,0x36,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x61,0x73,0x65,0x20,0x3c,0x3d, + 0x20,0x30,0x2e,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x36,0x20,0x3d,0x20,0x28,0x32,0x2e,0x30,0x20, + 0x2a,0x20,0x62,0x61,0x73,0x65,0x29,0x20,0x2a,0x20,0x62,0x6c,0x65,0x6e,0x64,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31, + 0x31,0x36,0x20,0x3d,0x20,0x66,0x6d,0x61,0x28,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20, + 0x62,0x61,0x73,0x65,0x29,0x20,0x2a,0x20,0x28,0x2d,0x32,0x2e,0x30,0x29,0x2c,0x20, + 0x31,0x2e,0x30,0x20,0x2d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2c,0x20,0x31,0x2e,0x30, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, + 0x75,0x72,0x6e,0x20,0x5f,0x31,0x31,0x36,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61, 0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74, 0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73, - 0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x20,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x5f,0x75,0x76,0x28,0x74,0x68,0x72,0x65,0x61, - 0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20, - 0x75,0x76,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, - 0x5f,0x73,0x69,0x7a,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x20,0x5f,0x32,0x30,0x34,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x6f,0x72, - 0x28,0x66,0x6d,0x61,0x28,0x75,0x76,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, - 0x5f,0x73,0x69,0x7a,0x65,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e, - 0x35,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, - 0x20,0x28,0x5f,0x32,0x30,0x34,0x20,0x2b,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63, - 0x6c,0x61,0x6d,0x70,0x28,0x66,0x6d,0x61,0x28,0x75,0x76,0x2c,0x20,0x74,0x65,0x78, - 0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x2c,0x20,0x2d,0x5f,0x32,0x30,0x34, - 0x29,0x20,0x2f,0x20,0x66,0x77,0x69,0x64,0x74,0x68,0x28,0x75,0x76,0x20,0x2a,0x20, - 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x29,0x2c,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x28,0x2d,0x30,0x2e,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x28,0x30,0x2e,0x35,0x29,0x29,0x29,0x20,0x2f,0x20,0x74,0x65,0x78, - 0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74, + 0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20, + 0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x62,0x61, + 0x73,0x65,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x62,0x6c,0x65,0x6e,0x64,0x29,0x0a, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20, + 0x62,0x6c,0x65,0x6e,0x64,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x62,0x61,0x73, + 0x65,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2e,0x79, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x34,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x2e,0x7a,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20, + 0x3d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72, + 0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x6f,0x76,0x65, + 0x72,0x6c,0x61,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x29,0x2c,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x2c, + 0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a, + 0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f, + 0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77, + 0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f, + 0x61,0x74,0x34,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x74,0x68,0x72,0x65, + 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26, + 0x20,0x62,0x61,0x73,0x65,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, + 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x62,0x6c,0x65,0x6e, + 0x64,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x2e,0x78,0x79,0x7a, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2e,0x78,0x79,0x7a, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x34,0x28,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x62,0x61,0x73, + 0x65,0x2e,0x77,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20, + 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75, + 0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c, + 0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x67,0x61,0x6d, + 0x6d,0x61,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x63,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x70, + 0x6f,0x77,0x28,0x61,0x62,0x73,0x28,0x63,0x2e,0x78,0x79,0x7a,0x29,0x2c,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x34,0x35,0x34,0x35,0x34,0x35,0x34,0x36, + 0x38,0x30,0x39,0x31,0x39,0x36,0x34,0x37,0x32,0x31,0x36,0x37,0x39,0x36,0x38,0x37, + 0x35,0x29,0x29,0x2c,0x20,0x63,0x2e,0x77,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74, 0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74, 0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79, 0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74, - 0x34,0x20,0x64,0x65,0x5f,0x67,0x61,0x6d,0x6d,0x61,0x28,0x74,0x68,0x72,0x65,0x61, - 0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20, - 0x63,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x70,0x6f,0x77,0x28,0x61,0x62,0x73,0x28,0x63, - 0x2e,0x78,0x79,0x7a,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x32,0x2e, - 0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38, - 0x32,0x30,0x33,0x31,0x32,0x35,0x29,0x29,0x2c,0x20,0x63,0x2e,0x77,0x29,0x3b,0x0a, - 0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65, - 0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28, - 0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x74,0x68, - 0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x26,0x20,0x62,0x61,0x73,0x65,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63, - 0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x62,0x6c,0x65,0x6e, - 0x64,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, - 0x31,0x30,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x61,0x73, - 0x65,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x30,0x34,0x20,0x3d,0x20,0x28, - 0x32,0x2e,0x30,0x20,0x2a,0x20,0x62,0x61,0x73,0x65,0x29,0x20,0x2a,0x20,0x62,0x6c, - 0x65,0x6e,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, - 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x5f,0x31,0x30,0x34,0x20,0x3d,0x20,0x66,0x6d,0x61,0x28,0x28,0x31,0x2e, - 0x30,0x20,0x2d,0x20,0x62,0x61,0x73,0x65,0x29,0x20,0x2a,0x20,0x28,0x2d,0x32,0x2e, - 0x30,0x29,0x2c,0x20,0x31,0x2e,0x30,0x20,0x2d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2c, - 0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x31,0x30,0x34,0x3b,0x0a,0x7d,0x0a, - 0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f, - 0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c, - 0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c, - 0x6f,0x61,0x74,0x33,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x74,0x68,0x72, - 0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x26,0x20,0x62,0x61,0x73,0x65,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63, - 0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x62,0x6c,0x65, - 0x6e,0x64,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x2e,0x78,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x20,0x3d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d, - 0x20,0x62,0x61,0x73,0x65,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x62,0x6c,0x65, - 0x6e,0x64,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x2e,0x7a, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x35,0x20,0x3d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2e,0x7a,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x28,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61, - 0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x33,0x29,0x2c,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x29,0x3b, - 0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e, - 0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28, - 0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29, - 0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28, - 0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x34,0x26,0x20,0x62,0x61,0x73,0x65,0x2c,0x20,0x74,0x68,0x72,0x65,0x61, - 0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20, - 0x62,0x6c,0x65,0x6e,0x64,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x62,0x61,0x73,0x65, - 0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x62,0x6c,0x65,0x6e,0x64, - 0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28, - 0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c, - 0x20,0x62,0x61,0x73,0x65,0x2e,0x77,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61, - 0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74, - 0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73, - 0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34, - 0x20,0x67,0x61,0x6d,0x6d,0x61,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, - 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x63,0x29,0x0a,0x7b, + 0x32,0x20,0x73,0x6b,0x65,0x77,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, + 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x76,0x29,0x0a,0x7b, 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x34,0x28,0x70,0x6f,0x77,0x28,0x61,0x62,0x73,0x28,0x63,0x2e,0x78,0x79,0x7a, - 0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x34,0x35,0x34,0x35, - 0x34,0x35,0x34,0x36,0x38,0x30,0x39,0x31,0x39,0x36,0x34,0x37,0x32,0x31,0x36,0x37, - 0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x2c,0x20,0x63,0x2e,0x77,0x29,0x3b,0x0a,0x7d, + 0x74,0x32,0x28,0x2d,0x76,0x2e,0x79,0x2c,0x20,0x76,0x2e,0x78,0x29,0x3b,0x0a,0x7d, 0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20, 0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61, 0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x20,0x73,0x6b,0x65,0x77,0x28,0x74,0x68,0x72,0x65,0x61, - 0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20, - 0x76,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x2d,0x76,0x2e,0x79,0x2c,0x20,0x76,0x2e,0x78, - 0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c, - 0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f, - 0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65, - 0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63, - 0x65,0x5f,0x61,0x61,0x62,0x62,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, - 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x70,0x2c,0x20,0x74, - 0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x32,0x26,0x20,0x68,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x20,0x5f,0x33,0x35,0x37,0x20,0x3d,0x20,0x61,0x62,0x73,0x28, - 0x70,0x29,0x20,0x2d,0x20,0x68,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, - 0x75,0x72,0x6e,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x66,0x61,0x73,0x74,0x3a, - 0x3a,0x6d,0x61,0x78,0x28,0x5f,0x33,0x35,0x37,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x32,0x28,0x30,0x2e,0x30,0x29,0x29,0x29,0x20,0x2b,0x20,0x66,0x61,0x73,0x74,0x3a, - 0x3a,0x6d,0x69,0x6e,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x5f, - 0x33,0x35,0x37,0x2e,0x78,0x2c,0x20,0x5f,0x33,0x35,0x37,0x2e,0x79,0x29,0x2c,0x20, - 0x30,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20, - 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75, - 0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c, - 0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74, - 0x61,0x6e,0x63,0x65,0x5f,0x62,0x6f,0x78,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20, + 0x6c,0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x61,0x61, + 0x62,0x62,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x70,0x2c,0x20,0x74,0x68,0x72,0x65,0x61, 0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20, - 0x63,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x68,0x65,0x2c,0x20,0x74,0x68,0x72,0x65, - 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26, - 0x20,0x75,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x75,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x70,0x20,0x2d,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d,0x20, - 0x74,0x72,0x61,0x6e,0x73,0x70,0x6f,0x73,0x65,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x78,0x32,0x28,0x75,0x2c,0x20,0x73,0x6b,0x65,0x77,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x29,0x29,0x29,0x20,0x2a,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x70,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x20,0x3d,0x20,0x68,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, - 0x74,0x75,0x72,0x6e,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x61,0x61, - 0x62,0x62,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20, - 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75, - 0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c, - 0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x61,0x66,0x65, - 0x5f,0x64,0x69,0x76,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73, - 0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x61,0x2c,0x20,0x74,0x68,0x72,0x65, - 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20, - 0x62,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, - 0x32,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x20,0x3d, - 0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x32,0x35,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32, - 0x32,0x35,0x20,0x3d,0x20,0x61,0x20,0x2f,0x20,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x32,0x32, - 0x35,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c, - 0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f, - 0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65, - 0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x61,0x66,0x65,0x5f,0x6c,0x65, - 0x6e,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x76,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x33,0x38,0x20,0x3d,0x20,0x64,0x6f,0x74, - 0x28,0x76,0x2c,0x20,0x76,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x5f,0x32,0x34,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x5f,0x32,0x33,0x38,0x20,0x3d,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x34,0x31,0x20, - 0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x5f,0x32,0x34,0x31,0x20,0x3d,0x20,0x73,0x71,0x72,0x74,0x28, - 0x5f,0x32,0x33,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x32,0x34,0x31,0x3b,0x0a,0x7d,0x0a, - 0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f, - 0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c, - 0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x73,0x65,0x67, - 0x6d,0x65,0x6e,0x74,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73, - 0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x70,0x2c,0x20,0x74,0x68,0x72, - 0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x26,0x20,0x61,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73, - 0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x62,0x29,0x0a,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x30,0x32,0x20,0x3d, - 0x20,0x62,0x20,0x2d,0x20,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x32,0x20,0x5f,0x34,0x30,0x36,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x61,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x30,0x36,0x2c,0x20,0x5f,0x34,0x30, - 0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x30,0x32, - 0x2c,0x20,0x5f,0x34,0x30,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x34, - 0x30,0x36,0x20,0x2d,0x20,0x28,0x5f,0x34,0x30,0x32,0x20,0x2a,0x20,0x66,0x61,0x73, - 0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x66,0x65,0x5f,0x64,0x69, - 0x76,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x61,0x66,0x65,0x5f,0x6c, - 0x65,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x7d,0x0a,0x0a, - 0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f, - 0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77, - 0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x64,0x65,0x74,0x32,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63, - 0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x61,0x2c,0x20, - 0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x26,0x20,0x62,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, - 0x74,0x75,0x72,0x6e,0x20,0x66,0x6d,0x61,0x28,0x61,0x2e,0x78,0x2c,0x20,0x62,0x2e, - 0x79,0x2c,0x20,0x2d,0x28,0x61,0x2e,0x79,0x20,0x2a,0x20,0x62,0x2e,0x78,0x29,0x29, + 0x68,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x20,0x5f,0x33,0x36,0x30,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x70,0x29,0x20,0x2d, + 0x20,0x68,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, + 0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78, + 0x28,0x5f,0x33,0x36,0x30,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e, + 0x30,0x29,0x29,0x29,0x20,0x2b,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x69,0x6e, + 0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x5f,0x33,0x36,0x30,0x2e, + 0x78,0x2c,0x20,0x5f,0x33,0x36,0x30,0x2e,0x79,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29, 0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69, 0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f, 0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29, 0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65, - 0x5f,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x28,0x74,0x68,0x72,0x65,0x61,0x64, - 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x70, - 0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x61,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64, - 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x62, - 0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x63,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x33,0x32,0x20,0x3d,0x20,0x62,0x20, - 0x2d,0x20,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, - 0x5f,0x34,0x33,0x36,0x20,0x3d,0x20,0x63,0x20,0x2d,0x20,0x62,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x34,0x30,0x20,0x3d,0x20, - 0x61,0x20,0x2d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x32,0x20,0x5f,0x34,0x34,0x34,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x61,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x34,0x38,0x20, - 0x3d,0x20,0x70,0x20,0x2d,0x20,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x20,0x5f,0x34,0x35,0x32,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x63, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x34,0x34,0x2c,0x20,0x5f,0x34, - 0x33,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x33, - 0x32,0x2c,0x20,0x5f,0x34,0x33,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x36,0x37,0x20,0x3d,0x20,0x5f,0x34,0x34,0x34, - 0x20,0x2d,0x20,0x28,0x5f,0x34,0x33,0x32,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a, - 0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28, - 0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c, - 0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d, - 0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x34,0x38,0x2c,0x20,0x5f,0x34,0x33,0x36,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x33,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x33,0x36,0x2c,0x20, - 0x5f,0x34,0x33,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x32,0x20,0x5f,0x34,0x38,0x32,0x20,0x3d,0x20,0x5f,0x34,0x34,0x38,0x20,0x2d,0x20, - 0x28,0x5f,0x34,0x33,0x36,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c, - 0x61,0x6d,0x70,0x28,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x2c,0x20, - 0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20, - 0x64,0x6f,0x74,0x28,0x5f,0x34,0x35,0x32,0x2c,0x20,0x5f,0x34,0x34,0x30,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x35,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x34,0x30,0x2c,0x20,0x5f, - 0x34,0x34,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x20,0x5f,0x34,0x39,0x37,0x20,0x3d,0x20,0x5f,0x34,0x35,0x32,0x20,0x2d,0x20,0x28, - 0x5f,0x34,0x34,0x30,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61, - 0x6d,0x70,0x28,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20,0x30, - 0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20, - 0x5f,0x34,0x33,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x34,0x34,0x30,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x35,0x30,0x33,0x20, - 0x3d,0x20,0x64,0x65,0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f, - 0x34,0x34,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x5f,0x34,0x33,0x32,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x30,0x20,0x3d,0x20,0x5f,0x34,0x34,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20, - 0x3d,0x20,0x5f,0x34,0x33,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x5f,0x34, - 0x35,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x5f,0x34,0x34,0x30,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x35,0x33,0x39,0x20, - 0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x69,0x6e,0x28,0x66,0x61,0x73,0x74, - 0x3a,0x3a,0x6d,0x69,0x6e,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x64,0x6f,0x74, - 0x28,0x5f,0x34,0x36,0x37,0x2c,0x20,0x5f,0x34,0x36,0x37,0x29,0x2c,0x20,0x5f,0x35, - 0x30,0x33,0x20,0x2a,0x20,0x64,0x65,0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x29,0x29,0x2c,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x28,0x64,0x6f,0x74,0x28,0x5f,0x34,0x38,0x32,0x2c,0x20,0x5f, - 0x34,0x38,0x32,0x29,0x2c,0x20,0x5f,0x35,0x30,0x33,0x20,0x2a,0x20,0x64,0x65,0x74, - 0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x31,0x29,0x29,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28, - 0x64,0x6f,0x74,0x28,0x5f,0x34,0x39,0x37,0x2c,0x20,0x5f,0x34,0x39,0x37,0x29,0x2c, - 0x20,0x5f,0x35,0x30,0x33,0x20,0x2a,0x20,0x64,0x65,0x74,0x32,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x29, - 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28, - 0x2d,0x73,0x71,0x72,0x74,0x28,0x5f,0x35,0x33,0x39,0x2e,0x78,0x29,0x29,0x20,0x2a, - 0x20,0x73,0x69,0x67,0x6e,0x28,0x5f,0x35,0x33,0x39,0x2e,0x79,0x29,0x3b,0x0a,0x7d, - 0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20, - 0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61, - 0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x73,0x64,0x66,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x28, - 0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x26,0x20,0x64,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x26,0x20,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x29,0x0a,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x62,0x73,0x28, - 0x64,0x29,0x20,0x2d,0x20,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3b,0x0a,0x7d, + 0x5f,0x62,0x6f,0x78,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x26,0x20,0x70,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, + 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x63,0x2c,0x20,0x74, + 0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x26,0x20,0x68,0x65,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63, + 0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x75,0x29,0x0a, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x20,0x3d,0x20,0x75,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x2d,0x3d, + 0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d,0x20,0x74,0x72,0x61,0x6e, + 0x73,0x70,0x6f,0x73,0x65,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x78,0x32,0x28,0x75, + 0x2c,0x20,0x73,0x6b,0x65,0x77,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x29,0x29,0x20, + 0x2a,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20, + 0x3d,0x20,0x68,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, + 0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x61,0x61,0x62,0x62,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29, + 0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69, + 0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f, + 0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29, + 0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76, + 0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x26,0x20,0x61,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63, + 0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x62,0x29,0x0a,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x33,0x37,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x20,0x3d,0x3d,0x20,0x30,0x2e, + 0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x5f,0x32,0x33,0x37,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x33,0x37,0x20,0x3d, + 0x20,0x61,0x20,0x2f,0x20,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x32,0x33,0x37,0x3b,0x0a,0x7d, 0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20, 0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61, 0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66, - 0x6c,0x6f,0x61,0x74,0x34,0x20,0x73,0x64,0x66,0x28,0x74,0x68,0x72,0x65,0x61,0x64, - 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x61, - 0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x62,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64, - 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x64,0x2c, - 0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x76, - 0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e, - 0x74,0x20,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x26,0x20,0x5f,0x32,0x38, - 0x32,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26, - 0x20,0x76,0x5f,0x61,0x61,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x34,0x26,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x74,0x68, - 0x72,0x65,0x61,0x64,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x76,0x5f,0x66,0x69, - 0x6c,0x6c,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x5f,0x32,0x39,0x31,0x20,0x3d,0x20,0x5f,0x32,0x38,0x32,0x2e,0x75,0x5f,0x61,0x61, - 0x66,0x20,0x2a,0x20,0x5f,0x32,0x38,0x32,0x2e,0x75,0x5f,0x61,0x61,0x5f,0x73,0x63, - 0x61,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x32,0x39,0x35,0x20,0x3d,0x20,0x73,0x64,0x66,0x5f,0x73, - 0x74,0x72,0x6f,0x6b,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x76,0x5f,0x73, - 0x74,0x72,0x6f,0x6b,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x34,0x20,0x5f,0x33,0x33,0x34,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, - 0x28,0x76,0x5f,0x61,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75, - 0x6c,0x74,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x73,0x65,0x6c, - 0x65,0x63,0x74,0x28,0x61,0x2c,0x20,0x62,0x2c,0x20,0x62,0x6f,0x6f,0x6c,0x34,0x28, - 0x5f,0x32,0x39,0x35,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x30,0x29,0x29,0x2c,0x20,0x6d, - 0x69,0x78,0x28,0x62,0x2c,0x20,0x61,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28, - 0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x2c,0x20, - 0x5f,0x32,0x39,0x31,0x2c,0x20,0x5f,0x32,0x39,0x35,0x29,0x29,0x29,0x2c,0x20,0x5f, - 0x33,0x33,0x34,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x73,0x65,0x6c,0x65,0x63,0x74, - 0x28,0x61,0x2c,0x20,0x62,0x2c,0x20,0x62,0x6f,0x6f,0x6c,0x34,0x28,0x66,0x61,0x73, - 0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x64,0x2c,0x20,0x2d,0x31,0x2e,0x30, - 0x2c,0x20,0x31,0x2e,0x30,0x29,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x30,0x29,0x29,0x2c, - 0x20,0x6d,0x69,0x78,0x28,0x62,0x2c,0x20,0x61,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x34,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30, - 0x2c,0x20,0x5f,0x32,0x39,0x31,0x2c,0x20,0x64,0x29,0x29,0x29,0x2c,0x20,0x5f,0x33, - 0x33,0x34,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x76,0x5f,0x66,0x69, - 0x6c,0x6c,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, - 0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74, - 0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72, - 0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f, - 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, - 0x73,0x68,0x61,0x64,0x65,0x72,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, - 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x63,0x6f,0x6c,0x6f, - 0x72,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x70,0x6f,0x73,0x2c,0x20,0x74,0x68,0x72, - 0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x26,0x20,0x75,0x76,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e, - 0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x73,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f, - 0x61,0x74,0x3e,0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x2c,0x20,0x73, - 0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78, - 0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20, - 0x73,0x68,0x61,0x64,0x65,0x72,0x5f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x26, - 0x20,0x5f,0x35,0x37,0x32,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64, - 0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x77,0x61,0x74,0x65,0x72,0x5f,0x74,0x65, - 0x78,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x77,0x61,0x74,0x65,0x72, - 0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x35,0x37,0x37,0x20,0x3d,0x20,0x6e, - 0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28, - 0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20, - 0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x75,0x76,0x2e,0x78,0x20,0x2a,0x20, - 0x35,0x2e,0x30,0x2c,0x20,0x75,0x76,0x2e,0x79,0x20,0x2a,0x20,0x33,0x2e,0x37,0x35, - 0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x32,0x28,0x5f,0x35,0x37,0x32,0x2e,0x74,0x69,0x6d,0x65,0x29,0x29,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x35,0x37,0x39,0x20,0x3d, - 0x20,0x5f,0x35,0x37,0x37,0x2e,0x78,0x20,0x2d,0x20,0x30,0x2e,0x35,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x63,0x20,0x3d,0x20,0x77,0x61, - 0x74,0x65,0x72,0x5f,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x77, - 0x61,0x74,0x65,0x72,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x28, - 0x75,0x76,0x20,0x2b,0x20,0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e, - 0x30,0x30,0x31,0x35,0x36,0x32,0x35,0x30,0x30,0x30,0x32,0x33,0x32,0x38,0x33,0x30, - 0x36,0x34,0x33,0x36,0x35,0x33,0x38,0x36,0x39,0x36,0x32,0x38,0x39,0x30,0x36,0x32, - 0x35,0x2c,0x20,0x30,0x2e,0x30,0x30,0x32,0x30,0x38,0x33,0x33,0x33,0x33,0x34,0x34, - 0x31,0x39,0x38,0x37,0x36,0x33,0x33,0x37,0x30,0x35,0x31,0x33,0x39,0x31,0x36,0x30, - 0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2a,0x20,0x5f,0x35,0x37,0x39,0x29,0x20,0x2a, - 0x20,0x5f,0x35,0x37,0x32,0x2e,0x61,0x6d,0x70,0x6c,0x69,0x74,0x75,0x64,0x65,0x29, - 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f, - 0x36,0x30,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x35,0x37, - 0x32,0x2e,0x73,0x68,0x6f,0x77,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x20,0x3e,0x20,0x30, - 0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x5f,0x36,0x30,0x32,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28, - 0x5f,0x35,0x37,0x39,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x30, - 0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, - 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x5f,0x36,0x30,0x32,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x36,0x30,0x32,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x36,0x30,0x32,0x3b, - 0x0a,0x7d,0x0a,0x0a,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x6d,0x61,0x69, - 0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x28,0x6d,0x61,0x69, - 0x6e,0x30,0x5f,0x69,0x6e,0x20,0x69,0x6e,0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,0x65, - 0x5f,0x69,0x6e,0x5d,0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20, - 0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x26,0x20,0x5f,0x32,0x38,0x32,0x20, - 0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20,0x63, - 0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x5f,0x75, - 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x26,0x20,0x5f,0x35,0x37,0x32,0x20,0x5b,0x5b, - 0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x31,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78, - 0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x6e,0x6f, - 0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72, - 0x65,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32, - 0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x77,0x61,0x74,0x65,0x72,0x5f,0x74, - 0x65,0x78,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x31,0x29,0x5d, - 0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f, - 0x61,0x74,0x3e,0x20,0x75,0x5f,0x69,0x6d,0x61,0x67,0x65,0x20,0x5b,0x5b,0x74,0x65, - 0x78,0x74,0x75,0x72,0x65,0x28,0x32,0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70, + 0x6c,0x6f,0x61,0x74,0x20,0x73,0x61,0x66,0x65,0x5f,0x6c,0x65,0x6e,0x28,0x74,0x68, + 0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x26,0x20,0x76,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x5f,0x32,0x35,0x30,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x76,0x2c,0x20, + 0x76,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32, + 0x35,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x32,0x35,0x30, + 0x20,0x3d,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x35,0x33,0x20,0x3d,0x20,0x30,0x2e, + 0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, + 0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x5f,0x32,0x35,0x33,0x20,0x3d,0x20,0x73,0x71,0x72,0x74,0x28,0x5f,0x32,0x35,0x30, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, + 0x75,0x72,0x6e,0x20,0x5f,0x32,0x35,0x33,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61, + 0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74, + 0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73, + 0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x73,0x65,0x67,0x6d,0x65,0x6e,0x74, + 0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x32,0x26,0x20,0x70,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20, + 0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x61,0x2c, + 0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x32,0x26,0x20,0x62,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x30,0x35,0x20,0x3d,0x20,0x62,0x20,0x2d, + 0x20,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f, + 0x34,0x30,0x39,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x61,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x64, + 0x6f,0x74,0x28,0x5f,0x34,0x30,0x39,0x2c,0x20,0x5f,0x34,0x30,0x35,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x30,0x35,0x2c,0x20,0x5f,0x34, + 0x30,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x34,0x30,0x39,0x20,0x2d, + 0x20,0x28,0x5f,0x34,0x30,0x35,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63, + 0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x30, + 0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72, + 0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x61,0x66,0x65,0x5f,0x6c,0x65,0x6e,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74, + 0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72, + 0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f, + 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64, + 0x65,0x74,0x32,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x61,0x2c,0x20,0x74,0x68,0x72,0x65, + 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26, + 0x20,0x62,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, + 0x20,0x66,0x6d,0x61,0x28,0x61,0x2e,0x78,0x2c,0x20,0x62,0x2e,0x79,0x2c,0x20,0x2d, + 0x28,0x61,0x2e,0x79,0x20,0x2a,0x20,0x62,0x2e,0x78,0x29,0x29,0x3b,0x0a,0x7d,0x0a, + 0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f, + 0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c, + 0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x74,0x72,0x69, + 0x61,0x6e,0x67,0x6c,0x65,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e, + 0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x70,0x2c,0x20,0x74,0x68, + 0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x26,0x20,0x61,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e, + 0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x62,0x2c,0x20,0x74,0x68, + 0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x26,0x20,0x63,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x20,0x5f,0x34,0x33,0x35,0x20,0x3d,0x20,0x62,0x20,0x2d,0x20,0x61,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x33,0x39, + 0x20,0x3d,0x20,0x63,0x20,0x2d,0x20,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x34,0x33,0x20,0x3d,0x20,0x61,0x20,0x2d,0x20, + 0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34, + 0x34,0x37,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x35,0x31,0x20,0x3d,0x20,0x70,0x20, + 0x2d,0x20,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, + 0x5f,0x34,0x35,0x35,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x63,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20, + 0x64,0x6f,0x74,0x28,0x5f,0x34,0x34,0x37,0x2c,0x20,0x5f,0x34,0x33,0x35,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x33,0x35,0x2c,0x20,0x5f, + 0x34,0x33,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x20,0x5f,0x34,0x37,0x30,0x20,0x3d,0x20,0x5f,0x34,0x34,0x37,0x20,0x2d,0x20,0x28, + 0x5f,0x34,0x33,0x35,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61, + 0x6d,0x70,0x28,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x30,0x2e,0x30, + 0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x64,0x6f,0x74, + 0x28,0x5f,0x34,0x35,0x31,0x2c,0x20,0x5f,0x34,0x33,0x39,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20, + 0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x33,0x39,0x2c,0x20,0x5f,0x34,0x33,0x39, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34, + 0x38,0x35,0x20,0x3d,0x20,0x5f,0x34,0x35,0x31,0x20,0x2d,0x20,0x28,0x5f,0x34,0x33, + 0x39,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28, + 0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c, + 0x20,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28, + 0x5f,0x34,0x35,0x35,0x2c,0x20,0x5f,0x34,0x34,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d, + 0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x34,0x33,0x2c,0x20,0x5f,0x34,0x34,0x33,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x35,0x30, + 0x30,0x20,0x3d,0x20,0x5f,0x34,0x35,0x35,0x20,0x2d,0x20,0x28,0x5f,0x34,0x34,0x33, + 0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73, + 0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20, + 0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x34,0x33,0x35, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x34,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x35,0x30,0x36,0x20,0x3d,0x20,0x64,0x65, + 0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f,0x34,0x34,0x37,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x39,0x20,0x3d,0x20,0x5f,0x34,0x33,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20, + 0x3d,0x20,0x5f,0x34,0x35,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x5f,0x34, + 0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x5f,0x34,0x35,0x35,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x33,0x20,0x3d,0x20,0x5f,0x34,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x35,0x34,0x32,0x20,0x3d,0x20,0x66,0x61, + 0x73,0x74,0x3a,0x3a,0x6d,0x69,0x6e,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x69, + 0x6e,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x64,0x6f,0x74,0x28,0x5f,0x34,0x37, + 0x30,0x2c,0x20,0x5f,0x34,0x37,0x30,0x29,0x2c,0x20,0x5f,0x35,0x30,0x36,0x20,0x2a, + 0x20,0x64,0x65,0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x39,0x29,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x28,0x64,0x6f,0x74,0x28,0x5f,0x34,0x38,0x35,0x2c,0x20,0x5f,0x34,0x38,0x35,0x29, + 0x2c,0x20,0x5f,0x35,0x30,0x36,0x20,0x2a,0x20,0x64,0x65,0x74,0x32,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31, + 0x29,0x29,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x64,0x6f,0x74,0x28, + 0x5f,0x35,0x30,0x30,0x2c,0x20,0x5f,0x35,0x30,0x30,0x29,0x2c,0x20,0x5f,0x35,0x30, + 0x36,0x20,0x2a,0x20,0x64,0x65,0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x29,0x29,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x2d,0x73,0x71,0x72, + 0x74,0x28,0x5f,0x35,0x34,0x32,0x2e,0x78,0x29,0x29,0x20,0x2a,0x20,0x73,0x69,0x67, + 0x6e,0x28,0x5f,0x35,0x34,0x32,0x2e,0x79,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74, + 0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74, + 0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79, + 0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x73,0x64,0x66,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x28,0x74,0x68,0x72,0x65, + 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20, + 0x64,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26, + 0x20,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x62,0x73,0x28,0x64,0x29,0x20,0x2d, + 0x20,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74, + 0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74, + 0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79, + 0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74, + 0x34,0x20,0x73,0x64,0x66,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e, + 0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x61,0x2c,0x20,0x74,0x68, + 0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x34,0x26,0x20,0x62,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e, + 0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x64,0x2c,0x20,0x74,0x68,0x72, + 0x65,0x61,0x64,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x76,0x5f,0x73,0x74,0x72, + 0x6f,0x6b,0x65,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x26,0x20,0x76,0x5f,0x61,0x61,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20, + 0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x76,0x5f, + 0x66,0x69,0x6c,0x6c,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x64,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x33,0x30,0x33,0x20,0x3d,0x20,0x6d, + 0x69,0x78,0x28,0x62,0x2c,0x20,0x61,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28, + 0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x2c,0x20, + 0x76,0x5f,0x61,0x61,0x2c,0x20,0x73,0x64,0x66,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65, + 0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65, + 0x29,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, + 0x20,0x5f,0x33,0x33,0x35,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x66, + 0x6c,0x6f,0x61,0x74,0x28,0x76,0x5f,0x61,0x61,0x20,0x3e,0x20,0x30,0x2e,0x30,0x29, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20, + 0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x5f,0x33,0x30,0x33,0x2c,0x20,0x5f,0x33, + 0x30,0x33,0x2c,0x20,0x5f,0x33,0x33,0x35,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x73, + 0x65,0x6c,0x65,0x63,0x74,0x28,0x61,0x2c,0x20,0x62,0x2c,0x20,0x62,0x6f,0x6f,0x6c, + 0x34,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x64,0x2c, + 0x20,0x2d,0x31,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x20,0x3c,0x3d,0x20,0x30, + 0x2e,0x30,0x29,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x62,0x2c,0x20,0x61,0x2c,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65, + 0x70,0x28,0x30,0x2e,0x30,0x2c,0x20,0x76,0x5f,0x61,0x61,0x2c,0x20,0x64,0x29,0x29, + 0x29,0x2c,0x20,0x5f,0x33,0x33,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, + 0x28,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72, + 0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x7d,0x0a, + 0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f, + 0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c, + 0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c, + 0x6f,0x61,0x74,0x32,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x66,0x72,0x6f,0x6d, + 0x5f,0x68,0x65,0x69,0x67,0x68,0x74,0x6d,0x61,0x70,0x28,0x74,0x65,0x78,0x74,0x75, + 0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x74,0x65,0x78,0x2c, + 0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c, + 0x72,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x75,0x76,0x29,0x0a,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x35,0x37,0x34,0x20,0x3d,0x20, + 0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x74,0x65,0x78,0x53,0x6d, + 0x70,0x6c,0x72,0x2c,0x20,0x75,0x76,0x2c,0x20,0x69,0x6e,0x74,0x32,0x28,0x30,0x2c, + 0x20,0x2d,0x31,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x5f,0x35,0x37,0x35,0x20,0x3d,0x20,0x5f,0x35,0x37,0x34,0x2e,0x78,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x28,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x74,0x65,0x78, + 0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x75,0x76,0x2c,0x20,0x69,0x6e,0x74,0x32,0x28, + 0x2d,0x31,0x2c,0x20,0x31,0x29,0x29,0x2e,0x78,0x20,0x2d,0x20,0x5f,0x35,0x37,0x35, + 0x2c,0x20,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x74,0x65,0x78, + 0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x75,0x76,0x2c,0x20,0x69,0x6e,0x74,0x32,0x28, + 0x31,0x29,0x29,0x2e,0x78,0x20,0x2d,0x20,0x5f,0x35,0x37,0x35,0x29,0x3b,0x0a,0x7d, + 0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20, + 0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61, + 0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66, + 0x6c,0x6f,0x61,0x74,0x34,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x74,0x6f,0x5f, + 0x63,0x6f,0x6c,0x6f,0x72,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e, + 0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x6e,0x29,0x0a,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x34,0x28,0x28,0x6e,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x32,0x28,0x30,0x2e,0x35,0x29,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20, + 0x31,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20, + 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75, + 0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c, + 0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x73,0x68,0x61, + 0x64,0x65,0x72,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x20, + 0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x26,0x20,0x70,0x6f,0x73,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64, + 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x75, + 0x76,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x2c,0x20, + 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e, + 0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x2c,0x20,0x73,0x61,0x6d,0x70, 0x6c,0x65,0x72,0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70, - 0x6c,0x72,0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x28,0x30,0x29,0x5d, - 0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x77,0x61,0x74,0x65,0x72, - 0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70, - 0x6c,0x65,0x72,0x28,0x31,0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65, - 0x72,0x20,0x75,0x5f,0x69,0x6d,0x61,0x67,0x65,0x53,0x6d,0x70,0x6c,0x72,0x20,0x5b, - 0x5b,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x28,0x32,0x29,0x5d,0x5d,0x29,0x0a,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f, - 0x75,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f, - 0x6c,0x20,0x5f,0x36,0x31,0x38,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x74,0x79, - 0x70,0x65,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62, - 0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x32,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, - 0x20,0x28,0x5f,0x36,0x31,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x32,0x34,0x20,0x3d,0x20,0x69,0x6e,0x2e, - 0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x31,0x39,0x36, - 0x30,0x37,0x38,0x34,0x34,0x32,0x39,0x36,0x38,0x34,0x32,0x38,0x31,0x33,0x34,0x39, - 0x31,0x38,0x32,0x31,0x32,0x38,0x39,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x32,0x34,0x20,0x3d, - 0x20,0x5f,0x36,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x32,0x37,0x20,0x3d,0x20,0x69,0x6e,0x2e, - 0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x31,0x39,0x36, - 0x30,0x37,0x38,0x34,0x34,0x32,0x39,0x36,0x38,0x34,0x32,0x38,0x31,0x33,0x34,0x39, - 0x31,0x38,0x32,0x31,0x32,0x38,0x39,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x33,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x66,0x20,0x28,0x5f,0x36,0x32,0x37,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x33,0x33,0x20,0x3d,0x20,0x69, - 0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x35, - 0x38,0x38,0x32,0x33,0x35,0x33,0x30,0x35,0x36,0x32,0x32,0x32,0x32,0x30,0x30,0x33, - 0x39,0x33,0x36,0x37,0x36,0x37,0x35,0x37,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x33,0x33,0x20, - 0x3d,0x20,0x5f,0x36,0x32,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x33,0x36,0x20,0x3d,0x20,0x69,0x6e, - 0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x35,0x38, - 0x38,0x32,0x33,0x35,0x33,0x30,0x35,0x36,0x32,0x32,0x32,0x32,0x30,0x30,0x33,0x39, - 0x33,0x36,0x37,0x36,0x37,0x35,0x37,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x34,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x66,0x20,0x28,0x5f,0x36,0x33,0x36,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x34,0x32,0x20,0x3d,0x20,0x69, - 0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x39, + 0x6c,0x72,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c, + 0x6f,0x61,0x74,0x3e,0x20,0x77,0x61,0x76,0x65,0x6c,0x65,0x74,0x73,0x5f,0x74,0x65, + 0x78,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x77,0x61,0x76,0x65,0x6c, + 0x65,0x74,0x73,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x74,0x65, + 0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x73, + 0x63,0x65,0x6e,0x65,0x5f,0x74,0x65,0x78,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65, + 0x72,0x20,0x73,0x63,0x65,0x6e,0x65,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72, + 0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x73,0x68,0x61,0x64,0x65, + 0x72,0x5f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x26,0x20,0x5f,0x36,0x35,0x31, + 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x75,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x36,0x30,0x34,0x20,0x3d,0x20,0x6e,0x6f,0x72, + 0x6d,0x61,0x6c,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x68,0x65,0x69,0x67,0x68,0x74,0x6d, + 0x61,0x70,0x28,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x2c,0x20,0x6e,0x6f, + 0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x75,0x76,0x20,0x2b,0x20, + 0x28,0x28,0x5f,0x36,0x30,0x34,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28, + 0x30,0x2e,0x30,0x30,0x36,0x32,0x35,0x30,0x30,0x30,0x30,0x30,0x39,0x33,0x31,0x33, + 0x32,0x32,0x35,0x37,0x34,0x36,0x31,0x35,0x34,0x37,0x38,0x35,0x31,0x35,0x36,0x32, + 0x35,0x2c,0x20,0x30,0x2e,0x30,0x30,0x38,0x33,0x33,0x33,0x33,0x33,0x33,0x37,0x36, + 0x37,0x39,0x35,0x30,0x35,0x33,0x34,0x38,0x32,0x30,0x35,0x35,0x36,0x36,0x34,0x30, + 0x36,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x31,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x36,0x31,0x35,0x20,0x3d, + 0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x68,0x65,0x69, + 0x67,0x68,0x74,0x6d,0x61,0x70,0x28,0x77,0x61,0x76,0x65,0x6c,0x65,0x74,0x73,0x5f, + 0x74,0x65,0x78,0x2c,0x20,0x77,0x61,0x76,0x65,0x6c,0x65,0x74,0x73,0x5f,0x74,0x65, + 0x78,0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x36,0x30,0x34,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20, + 0x3d,0x20,0x5f,0x36,0x31,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x20,0x5f,0x36,0x33,0x31,0x20,0x3d,0x20,0x5f,0x36,0x30,0x34,0x20,0x2b, + 0x20,0x5f,0x36,0x31,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x34,0x20,0x63,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x73,0x63,0x65,0x6e,0x65,0x5f, + 0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x73,0x63,0x65,0x6e,0x65, + 0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x28,0x75,0x76,0x20,0x2b, + 0x20,0x28,0x28,0x5f,0x36,0x33,0x31,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x28,0x30,0x2e,0x30,0x30,0x36,0x32,0x35,0x30,0x30,0x30,0x30,0x30,0x39,0x33,0x31, + 0x33,0x32,0x32,0x35,0x37,0x34,0x36,0x31,0x35,0x34,0x37,0x38,0x35,0x31,0x35,0x36, + 0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x30,0x38,0x33,0x33,0x33,0x33,0x33,0x33,0x37, + 0x36,0x37,0x39,0x35,0x30,0x35,0x33,0x34,0x38,0x32,0x30,0x35,0x35,0x36,0x36,0x34, + 0x30,0x36,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x31,0x30,0x2e,0x30,0x29,0x29,0x29, + 0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x31,0x2e,0x30,0x29,0x2c,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x34,0x28,0x28,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x5f,0x36, + 0x33,0x31,0x29,0x20,0x3e,0x20,0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30, + 0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33,0x31, + 0x32,0x35,0x29,0x20,0x3f,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30, + 0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35, + 0x36,0x32,0x35,0x20,0x3a,0x20,0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x36,0x35,0x36,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x35,0x31,0x2e,0x73,0x68,0x6f,0x77,0x5f, + 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x73,0x20,0x3e,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x36, + 0x30,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x36,0x31, + 0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x35,0x36,0x20, + 0x3d,0x20,0x6d,0x69,0x78,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x74,0x6f,0x5f, + 0x63,0x6f,0x6c,0x6f,0x72,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x2c,0x20, + 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x74,0x6f,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x28, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, + 0x28,0x30,0x2e,0x32,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x35,0x36,0x20,0x3d,0x20,0x63,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x36, + 0x35,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f, + 0x36,0x37,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x35, + 0x31,0x2e,0x73,0x68,0x6f,0x77,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x20,0x3e,0x20,0x30, + 0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x5f,0x36,0x37,0x33,0x20,0x3d,0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74, + 0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x6e,0x6f,0x69,0x73,0x65,0x5f, + 0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x75,0x76,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x37,0x33, + 0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x63,0x20,0x3d,0x20,0x5f,0x36,0x37,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, + 0x74,0x75,0x72,0x6e,0x20,0x5f,0x36,0x37,0x33,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x72, + 0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74, + 0x20,0x6d,0x61,0x69,0x6e,0x30,0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x20, + 0x69,0x6e,0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d,0x2c, + 0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x73,0x68,0x61,0x64,0x65,0x72, + 0x5f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x26,0x20,0x5f,0x36,0x35,0x31,0x20, + 0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20,0x63, + 0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d, + 0x73,0x26,0x20,0x5f,0x37,0x35,0x36,0x20,0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72, + 0x28,0x31,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64, + 0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65, + 0x78,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x30,0x29,0x5d,0x5d, + 0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61, + 0x74,0x3e,0x20,0x77,0x61,0x76,0x65,0x6c,0x65,0x74,0x73,0x5f,0x74,0x65,0x78,0x20, + 0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x31,0x29,0x5d,0x5d,0x2c,0x20, + 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e, + 0x20,0x73,0x63,0x65,0x6e,0x65,0x5f,0x74,0x65,0x78,0x20,0x5b,0x5b,0x74,0x65,0x78, + 0x74,0x75,0x72,0x65,0x28,0x32,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75, + 0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x75,0x5f,0x69,0x6d, + 0x61,0x67,0x65,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x33,0x29, + 0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x6e,0x6f,0x69,0x73, + 0x65,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x20,0x5b,0x5b,0x73,0x61,0x6d, + 0x70,0x6c,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c, + 0x65,0x72,0x20,0x77,0x61,0x76,0x65,0x6c,0x65,0x74,0x73,0x5f,0x74,0x65,0x78,0x53, + 0x6d,0x70,0x6c,0x72,0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x28,0x31, + 0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x73,0x63,0x65, + 0x6e,0x65,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x20,0x5b,0x5b,0x73,0x61, + 0x6d,0x70,0x6c,0x65,0x72,0x28,0x32,0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70, + 0x6c,0x65,0x72,0x20,0x75,0x5f,0x69,0x6d,0x61,0x67,0x65,0x53,0x6d,0x70,0x6c,0x72, + 0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x28,0x33,0x29,0x5d,0x5d,0x29, + 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74, + 0x20,0x6f,0x75,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62, + 0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x38,0x39,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f, + 0x74,0x79,0x70,0x65,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x39,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x36,0x38,0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x39,0x35,0x20,0x3d,0x20,0x69, + 0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x31, + 0x39,0x36,0x30,0x37,0x38,0x34,0x34,0x32,0x39,0x36,0x38,0x34,0x32,0x38,0x31,0x33, + 0x34,0x39,0x31,0x38,0x32,0x31,0x32,0x38,0x39,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x39,0x35, + 0x20,0x3d,0x20,0x5f,0x36,0x38,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x39,0x38,0x20,0x3d,0x20,0x69, + 0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x31, + 0x39,0x36,0x30,0x37,0x38,0x34,0x34,0x32,0x39,0x36,0x38,0x34,0x32,0x38,0x31,0x33, + 0x34,0x39,0x31,0x38,0x32,0x31,0x32,0x38,0x39,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x30,0x34,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x39,0x38,0x29,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x30,0x34,0x20,0x3d, + 0x20,0x69,0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30, + 0x30,0x35,0x38,0x38,0x32,0x33,0x35,0x33,0x30,0x35,0x36,0x32,0x32,0x32,0x32,0x30, + 0x30,0x33,0x39,0x33,0x36,0x37,0x36,0x37,0x35,0x37,0x38,0x31,0x32,0x35,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x30, + 0x34,0x20,0x3d,0x20,0x5f,0x36,0x39,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x30,0x37,0x20,0x3d,0x20, + 0x69,0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30, + 0x35,0x38,0x38,0x32,0x33,0x35,0x33,0x30,0x35,0x36,0x32,0x32,0x32,0x32,0x30,0x30, + 0x33,0x39,0x33,0x36,0x37,0x36,0x37,0x35,0x37,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x31,0x33,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x30,0x37,0x29,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x31,0x33,0x20,0x3d, + 0x20,0x69,0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30, + 0x30,0x39,0x38,0x30,0x33,0x39,0x32,0x31,0x39,0x31,0x35,0x35,0x39,0x30,0x37,0x36, + 0x33,0x30,0x39,0x32,0x30,0x34,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x31,0x33, + 0x20,0x3d,0x20,0x5f,0x37,0x30,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x31,0x36,0x20,0x3d,0x20,0x69, + 0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x39, 0x38,0x30,0x33,0x39,0x32,0x31,0x39,0x31,0x35,0x35,0x39,0x30,0x37,0x36,0x33,0x30, 0x39,0x32,0x30,0x34,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x32,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x37,0x31,0x36,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x32,0x32,0x20,0x3d,0x20,0x69, + 0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x31,0x33, + 0x37,0x32,0x35,0x34,0x39,0x30,0x33,0x30,0x39,0x32,0x39,0x38,0x30,0x33,0x38,0x34, + 0x38,0x32,0x36,0x36,0x36,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x34,0x32,0x20,0x3d, - 0x20,0x5f,0x36,0x33,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x34,0x35,0x20,0x3d,0x20,0x69,0x6e,0x2e, - 0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x39,0x38,0x30, - 0x33,0x39,0x32,0x31,0x39,0x31,0x35,0x35,0x39,0x30,0x37,0x36,0x33,0x30,0x39,0x32, - 0x30,0x34,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62, - 0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x35,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, - 0x20,0x28,0x5f,0x36,0x34,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x35,0x31,0x20,0x3d,0x20,0x69,0x6e,0x2e, - 0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x31,0x33,0x37,0x32, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x32,0x32,0x20,0x3d, + 0x20,0x5f,0x37,0x31,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x32,0x35,0x20,0x3d,0x20,0x69,0x6e,0x2e, + 0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x31,0x33,0x37,0x32, 0x35,0x34,0x39,0x30,0x33,0x30,0x39,0x32,0x39,0x38,0x30,0x33,0x38,0x34,0x38,0x32, - 0x36,0x36,0x36,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x35,0x31,0x20,0x3d,0x20,0x5f, - 0x36,0x34,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62, - 0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x35,0x34,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f, - 0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x31,0x33,0x37,0x32,0x35,0x34, - 0x39,0x30,0x33,0x30,0x39,0x32,0x39,0x38,0x30,0x33,0x38,0x34,0x38,0x32,0x36,0x36, - 0x36,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f, - 0x6c,0x20,0x5f,0x36,0x36,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x5f,0x36,0x35,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x5f,0x36,0x36,0x30,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f, - 0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x31,0x37,0x36,0x34,0x37,0x30, - 0x35,0x39,0x36,0x33,0x34,0x33,0x32,0x37,0x38,0x38,0x38,0x34,0x38,0x38,0x37,0x36, - 0x39,0x35,0x33,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x36,0x30,0x20,0x3d,0x20,0x5f,0x36,0x35,0x34, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, - 0x20,0x5f,0x36,0x36,0x33,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70, - 0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x31,0x37,0x36,0x34,0x37,0x30,0x35,0x39,0x36, - 0x33,0x34,0x33,0x32,0x37,0x38,0x38,0x38,0x34,0x38,0x38,0x37,0x36,0x39,0x35,0x33, - 0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36, - 0x36,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x36,0x33, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x5f,0x36,0x36,0x39,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65, - 0x20,0x3c,0x20,0x30,0x2e,0x30,0x32,0x31,0x35,0x36,0x38,0x36,0x32,0x38,0x30,0x32, - 0x38,0x30,0x33,0x35,0x31,0x36,0x33,0x38,0x37,0x39,0x33,0x39,0x34,0x35,0x33,0x31, - 0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c, - 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x36,0x36,0x39,0x20,0x3d,0x20,0x5f,0x36,0x36,0x33,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x63, - 0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x36,0x37,0x36,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x5f,0x36,0x32,0x34,0x20, - 0x26,0x26,0x20,0x5f,0x36,0x33,0x33,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x75,0x76,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x5f,0x32,0x38,0x32,0x2e,0x75,0x5f, - 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x75,0x5f,0x69,0x6d,0x61,0x67,0x65,0x2e,0x73, - 0x61,0x6d,0x70,0x6c,0x65,0x28,0x75,0x5f,0x69,0x6d,0x61,0x67,0x65,0x53,0x6d,0x70, - 0x6c,0x72,0x2c,0x20,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x5f,0x75,0x76,0x28,0x70,0x61, - 0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x37,0x36,0x20,0x3d,0x20,0x64, - 0x65,0x5f,0x67,0x61,0x6d,0x6d,0x61,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, - 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, - 0x36,0x37,0x36,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x36,0x37,0x36,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x36,0x39,0x37,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x32,0x34,0x29,0x0a,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x6f,0x6c,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61, - 0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x39, - 0x37,0x20,0x3d,0x20,0x67,0x61,0x6d,0x6d,0x61,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c, + 0x36,0x36,0x36,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62, + 0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x33,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x5f,0x37,0x32,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x33,0x31,0x20,0x3d,0x20,0x69,0x6e,0x2e, + 0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x31,0x37,0x36,0x34, + 0x37,0x30,0x35,0x39,0x36,0x33,0x34,0x33,0x32,0x37,0x38,0x38,0x38,0x34,0x38,0x38, + 0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x33,0x31,0x20,0x3d,0x20,0x5f,0x37, + 0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f, + 0x6f,0x6c,0x20,0x5f,0x37,0x33,0x34,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x74, + 0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x31,0x37,0x36,0x34,0x37,0x30,0x35, + 0x39,0x36,0x33,0x34,0x33,0x32,0x37,0x38,0x38,0x38,0x34,0x38,0x38,0x37,0x36,0x39, + 0x35,0x33,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20, + 0x5f,0x37,0x34,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37, + 0x33,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x5f,0x37,0x34,0x30,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x74,0x79, + 0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x32,0x31,0x35,0x36,0x38,0x36,0x32,0x38, + 0x30,0x32,0x38,0x30,0x33,0x35,0x31,0x36,0x33,0x38,0x37,0x39,0x33,0x39,0x34,0x35, + 0x33,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x5f,0x37,0x34,0x30,0x20,0x3d,0x20,0x5f,0x37,0x33,0x34,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, + 0x20,0x63,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x30,0x2e,0x30,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x37,0x34, + 0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x5f,0x36,0x39, + 0x35,0x20,0x26,0x26,0x20,0x5f,0x37,0x30,0x34,0x29,0x29,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x75,0x76, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x5f,0x37,0x35,0x36,0x2e, + 0x75,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x75,0x5f,0x69,0x6d,0x61,0x67,0x65, + 0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x75,0x5f,0x69,0x6d,0x61,0x67,0x65,0x53, + 0x6d,0x70,0x6c,0x72,0x2c,0x20,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x5f,0x75,0x76,0x28, + 0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x34,0x37,0x20,0x3d, + 0x20,0x64,0x65,0x5f,0x67,0x61,0x6d,0x6d,0x61,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c, 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x36,0x39,0x37,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x36,0x39,0x37,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x37,0x31,0x33,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x33,0x33,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x31,0x33, - 0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x6f,0x6c,0x20,0x2a,0x20,0x63,0x2e, - 0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, - 0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x5f,0x37,0x31,0x33,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x28,0x5f, - 0x37,0x31,0x33,0x2c,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x6f,0x6c,0x2c,0x20,0x62, - 0x6f,0x6f,0x6c,0x34,0x28,0x5f,0x36,0x36,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x34,0x32,0x29,0x0a,0x20,0x20, + 0x20,0x5f,0x37,0x34,0x37,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x37,0x34,0x37,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x37,0x37,0x31,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x39,0x35,0x29,0x0a,0x20,0x20, 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x69,0x6e,0x2e, - 0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20, - 0x69,0x6e,0x2e,0x76,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d, - 0x20,0x69,0x6e,0x2e,0x76,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20, - 0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37,0x34,0x34,0x20,0x3d,0x20,0x64, - 0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x62,0x6f,0x78,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d,0x20,0x5f,0x37,0x34, - 0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, - 0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x69,0x66,0x20,0x28,0x5f,0x36,0x35,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20, - 0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x61, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20, - 0x69,0x6e,0x2e,0x76,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37,0x35,0x35,0x20,0x3d, - 0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x73,0x65,0x67,0x6d,0x65,0x6e, - 0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d, - 0x20,0x5f,0x37,0x35,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x63,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x6f, + 0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x6f,0x76,0x65,0x72, + 0x6c,0x61,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, + 0x37,0x37,0x31,0x20,0x3d,0x20,0x67,0x61,0x6d,0x6d,0x61,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x5f,0x37,0x37,0x31,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x37,0x37,0x31,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x37,0x38,0x37, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x30,0x34,0x29,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37, + 0x38,0x37,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x6f,0x6c,0x20,0x2a,0x20, + 0x63,0x2e,0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, + 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x5f,0x37,0x38,0x37,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x73,0x65,0x6c,0x65,0x63,0x74, + 0x28,0x5f,0x37,0x38,0x37,0x2c,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x6f,0x6c,0x2c, + 0x20,0x62,0x6f,0x6f,0x6c,0x34,0x28,0x5f,0x37,0x33,0x31,0x29,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x20,0x3d,0x20,0x30,0x2e,0x30, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x31,0x33,0x29,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x69, + 0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20, + 0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38, + 0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x33,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x69,0x6e,0x2e, - 0x76,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35, - 0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a, - 0x3a,0x6d,0x69,0x6e,0x28,0x5f,0x37,0x35,0x35,0x2c,0x20,0x64,0x69,0x73,0x74,0x61, - 0x6e,0x63,0x65,0x5f,0x73,0x65,0x67,0x6d,0x65,0x6e,0x74,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c, - 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x36, - 0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36, - 0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x69, - 0x6e,0x2e,0x76,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x62,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39, - 0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d,0x20,0x64, - 0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65, - 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x39,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x38,0x31,0x38,0x20,0x3d, + 0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x62,0x6f,0x78,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d,0x20,0x5f, + 0x38,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, + 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x32,0x32,0x29,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x30,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76, + 0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20, + 0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x38,0x32,0x39, + 0x20,0x3d,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x73,0x65,0x67,0x6d, + 0x65,0x6e,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x2c,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64, + 0x20,0x3d,0x20,0x5f,0x38,0x32,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x69, + 0x6e,0x2e,0x76,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x35,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d,0x20,0x66,0x61,0x73, + 0x74,0x3a,0x3a,0x6d,0x69,0x6e,0x28,0x5f,0x38,0x32,0x39,0x2c,0x20,0x64,0x69,0x73, + 0x74,0x61,0x6e,0x63,0x65,0x5f,0x73,0x65,0x67,0x6d,0x65,0x6e,0x74,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x34,0x20,0x5f,0x37,0x38,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, - 0x28,0x28,0x28,0x21,0x5f,0x36,0x32,0x34,0x29,0x20,0x26,0x26,0x20,0x28,0x21,0x5f, - 0x36,0x33,0x33,0x29,0x29,0x20,0x26,0x26,0x20,0x28,0x21,0x5f,0x36,0x36,0x30,0x29, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20, - 0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20,0x69, - 0x6e,0x2e,0x76,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x20, - 0x3d,0x20,0x64,0x20,0x2d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x72,0x61,0x64,0x69,0x75, - 0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x34,0x20,0x5f,0x37,0x39,0x38,0x20,0x3d,0x20,0x73,0x64,0x66,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x2c,0x20,0x69,0x6e,0x2e,0x76,0x5f, - 0x73,0x74,0x72,0x6f,0x6b,0x65,0x2c,0x20,0x5f,0x32,0x38,0x32,0x2c,0x20,0x69,0x6e, - 0x2e,0x76,0x5f,0x61,0x61,0x2c,0x20,0x6f,0x75,0x74,0x2e,0x72,0x65,0x73,0x75,0x6c, - 0x74,0x2c,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x38,0x36,0x20,0x3d,0x20,0x5f,0x37, - 0x39,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c, - 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x37,0x38,0x36,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x38,0x30,0x35, - 0x20,0x3d,0x20,0x5f,0x37,0x38,0x36,0x20,0x2a,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x61, - 0x6c,0x70,0x68,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x38, - 0x30,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x5f,0x38,0x30,0x35,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x34,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x35,0x20,0x3d,0x20,0x28,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x48, - 0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x2e,0x30,0x29,0x29,0x20, - 0x2a,0x20,0x30,0x2e,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x20,0x3d,0x20,0x69,0x6e,0x2e, - 0x76,0x5f,0x75,0x73,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x34,0x20,0x5f,0x38,0x32,0x31,0x20,0x3d,0x20,0x73,0x68,0x61,0x64,0x65,0x72, - 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x2c,0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74, - 0x65,0x78,0x2c,0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70, - 0x6c,0x72,0x2c,0x20,0x5f,0x35,0x37,0x32,0x2c,0x20,0x77,0x61,0x74,0x65,0x72,0x5f, - 0x74,0x65,0x78,0x2c,0x20,0x77,0x61,0x74,0x65,0x72,0x5f,0x74,0x65,0x78,0x53,0x6d, - 0x70,0x6c,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x38, - 0x32,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x38,0x32,0x31, - 0x2e,0x77,0x20,0x3d,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x61,0x72,0x64, - 0x5f,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x72,0x65,0x73,0x75,0x6c, - 0x74,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, - 0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, + 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, + 0x37,0x34,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x36,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d, + 0x20,0x69,0x6e,0x2e,0x76,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f, + 0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x39,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d, + 0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x74,0x72,0x69,0x61,0x6e,0x67, + 0x6c,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x34,0x20,0x5f,0x38,0x36,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x66,0x20,0x28,0x28,0x28,0x21,0x5f,0x36,0x39,0x35,0x29,0x20,0x26,0x26,0x20,0x28, + 0x21,0x5f,0x37,0x30,0x34,0x29,0x29,0x20,0x26,0x26,0x20,0x28,0x21,0x5f,0x37,0x33, + 0x31,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x30,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d, + 0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x32,0x20,0x3d,0x20,0x64,0x20,0x2d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x72,0x61,0x64, + 0x69,0x75,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x34,0x20,0x5f,0x38,0x37,0x32,0x20,0x3d,0x20,0x73,0x64,0x66,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x2c,0x20,0x69,0x6e,0x2e, + 0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2c,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x61, + 0x61,0x2c,0x20,0x6f,0x75,0x74,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69, + 0x6e,0x2e,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x5f,0x38,0x36,0x30,0x20,0x3d,0x20,0x5f,0x38,0x37,0x32,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x38,0x36, + 0x30,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x38,0x37,0x39,0x20,0x3d,0x20,0x5f, + 0x38,0x36,0x30,0x20,0x2a,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x38,0x37,0x39,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x32,0x33,0x20,0x3d,0x20,0x5f,0x38,0x37,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20, + 0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x20, + 0x3d,0x20,0x28,0x28,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x48,0x20,0x2b,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x30, + 0x2e,0x35,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x2e,0x30, + 0x2c,0x20,0x2d,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x20,0x3d,0x20,0x69, + 0x6e,0x2e,0x76,0x5f,0x75,0x73,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x34,0x20,0x5f,0x38,0x39,0x37,0x20,0x3d,0x20,0x73,0x68,0x61,0x64, + 0x65,0x72,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x32,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x2c,0x20,0x6e,0x6f,0x69,0x73,0x65, + 0x5f,0x74,0x65,0x78,0x2c,0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x53, + 0x6d,0x70,0x6c,0x72,0x2c,0x20,0x77,0x61,0x76,0x65,0x6c,0x65,0x74,0x73,0x5f,0x74, + 0x65,0x78,0x2c,0x20,0x77,0x61,0x76,0x65,0x6c,0x65,0x74,0x73,0x5f,0x74,0x65,0x78, + 0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x73,0x63,0x65,0x6e,0x65,0x5f,0x74,0x65,0x78, + 0x2c,0x20,0x73,0x63,0x65,0x6e,0x65,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72, + 0x2c,0x20,0x5f,0x36,0x35,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d, + 0x20,0x5f,0x38,0x39,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, + 0x38,0x39,0x37,0x2e,0x77,0x20,0x3d,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63, + 0x61,0x72,0x64,0x5f,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x72,0x65, + 0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, + 0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, }; /* #include @@ -4917,10 +5275,10 @@ static const char shallow_water_fs_source_metal_macos[11243] = { float4 v_col [[user(locn5)]]; float v_radius [[user(locn6)]]; float v_stroke [[user(locn7)]]; - float v_type [[user(locn8)]]; - float v_alpha [[user(locn9)]]; - float v_fill [[user(locn10)]]; - float v_aa [[user(locn11)]]; + float v_aa [[user(locn8)]]; + float v_type [[user(locn9)]]; + float v_alpha [[user(locn10)]]; + float v_fill [[user(locn11)]]; float2 v_posH [[user(locn12)]]; float4 v_user [[user(locn13)]]; float4 gl_Position [[position]]; @@ -4937,8 +5295,9 @@ static const char shallow_water_fs_source_metal_macos[11243] = { float4 in_col [[attribute(6)]]; float in_radius [[attribute(7)]]; float in_stroke [[attribute(8)]]; - float4 in_params [[attribute(9)]]; - float4 in_user_params [[attribute(10)]]; + float in_aa [[attribute(9)]]; + float4 in_params [[attribute(10)]]; + float4 in_user_params [[attribute(11)]]; }; vertex main0_out main0(main0_in in [[stage_in]]) @@ -4952,10 +5311,10 @@ static const char shallow_water_fs_source_metal_macos[11243] = { out.v_col = in.in_col; out.v_radius = in.in_radius; out.v_stroke = in.in_stroke; + out.v_aa = in.in_aa; out.v_type = in.in_params.x; out.v_alpha = in.in_params.y; out.v_fill = in.in_params.z; - out.v_aa = in.in_params.w; out.gl_Position = float4(in.in_posH, 0.0, 1.0); out.v_posH = in.in_posH; out.v_user = in.in_user_params; @@ -4963,7 +5322,7 @@ static const char shallow_water_fs_source_metal_macos[11243] = { } */ -static const char shallow_water_vs_source_metal_ios[1595] = { +static const char shallow_water_vs_source_metal_ios[1624] = { 0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x6d,0x65,0x74,0x61,0x6c,0x5f, 0x73,0x74,0x64,0x6c,0x69,0x62,0x3e,0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65, 0x20,0x3c,0x73,0x69,0x6d,0x64,0x2f,0x73,0x69,0x6d,0x64,0x2e,0x68,0x3e,0x0a,0x0a, @@ -4987,13 +5346,13 @@ static const char shallow_water_vs_source_metal_ios[1595] = { 0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f, 0x73,0x74,0x72,0x6f,0x6b,0x65,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f, 0x63,0x6e,0x37,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x76,0x5f,0x61,0x61,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f, + 0x63,0x6e,0x38,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28, - 0x6c,0x6f,0x63,0x6e,0x38,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6c,0x6f,0x63,0x6e,0x39,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x20,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x20,0x5b,0x5b,0x75,0x73, - 0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x39,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x20,0x5b,0x5b, - 0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x30,0x29,0x5d,0x5d,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x61,0x61,0x20,0x5b, + 0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x20,0x5b, 0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x31,0x29,0x5d,0x5d,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x70,0x6f, 0x73,0x48,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x32, @@ -5023,47 +5382,49 @@ static const char shallow_water_vs_source_metal_ios[1595] = { 0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x37,0x29,0x5d,0x5d,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x69,0x6e,0x5f,0x73,0x74,0x72, 0x6f,0x6b,0x65,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28, - 0x38,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, - 0x20,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x5b,0x5b,0x61,0x74,0x74, - 0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x39,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x69,0x6e,0x5f,0x75,0x73,0x65,0x72,0x5f, - 0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72,0x69,0x62,0x75, - 0x74,0x65,0x28,0x31,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x76,0x65, - 0x72,0x74,0x65,0x78,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6d, - 0x61,0x69,0x6e,0x30,0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x20,0x69,0x6e, - 0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d,0x29,0x0a,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f, - 0x75,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74, - 0x2e,0x76,0x5f,0x70,0x6f,0x73,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x70, - 0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x61,0x20, - 0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f, - 0x75,0x74,0x2e,0x76,0x5f,0x62,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x62, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x63,0x20,0x3d,0x20, - 0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74, - 0x2e,0x76,0x5f,0x75,0x76,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x75,0x76, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x63,0x6f,0x6c,0x20, - 0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x20,0x3d,0x20, - 0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x20,0x3d, - 0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3d,0x20, - 0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x78,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x20, - 0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x79, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x66,0x69,0x6c,0x6c, - 0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e, - 0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x61,0x61,0x20, - 0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x77, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x67,0x6c,0x5f,0x50,0x6f,0x73, - 0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x69, - 0x6e,0x2e,0x69,0x6e,0x5f,0x70,0x6f,0x73,0x48,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20, - 0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f, - 0x70,0x6f,0x73,0x48,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x70,0x6f,0x73, - 0x48,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x75,0x73,0x65, - 0x72,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x75,0x73,0x65,0x72,0x5f,0x70, - 0x61,0x72,0x61,0x6d,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, - 0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, + 0x38,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x69,0x6e,0x5f,0x61,0x61,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74, + 0x65,0x28,0x39,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x34,0x20,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x5b,0x5b,0x61, + 0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x31,0x30,0x29,0x5d,0x5d,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x69,0x6e,0x5f,0x75,0x73, + 0x65,0x72,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72, + 0x69,0x62,0x75,0x74,0x65,0x28,0x31,0x31,0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a, + 0x0a,0x76,0x65,0x72,0x74,0x65,0x78,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75, + 0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e, + 0x20,0x69,0x6e,0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d, + 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75, + 0x74,0x20,0x6f,0x75,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x6f,0x75,0x74,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69, + 0x6e,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76, + 0x5f,0x61,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x61,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x62,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69, + 0x6e,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x63, + 0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x6f,0x75,0x74,0x2e,0x76,0x5f,0x75,0x76,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e, + 0x5f,0x75,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x63, + 0x6f,0x6c,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x63,0x6f,0x6c,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x72,0x61,0x64,0x69,0x75,0x73, + 0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b, + 0x65,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x61,0x61,0x20,0x3d, + 0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x61,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f, + 0x75,0x74,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69, + 0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x6f,0x75,0x74,0x2e,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x20,0x3d,0x20,0x69,0x6e, + 0x2e,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x79,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x20,0x3d,0x20,0x69, + 0x6e,0x2e,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x7a,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69, + 0x6f,0x6e,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x69,0x6e,0x2e,0x69, + 0x6e,0x5f,0x70,0x6f,0x73,0x48,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x70,0x6f,0x73, + 0x48,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x70,0x6f,0x73,0x48,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x75,0x73,0x65,0x72,0x20,0x3d, + 0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x75,0x73,0x65,0x72,0x5f,0x70,0x61,0x72,0x61, + 0x6d,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f, + 0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, }; /* #pragma clang diagnostic ignored "-Wmissing-prototypes" @@ -5073,18 +5434,15 @@ static const char shallow_water_vs_source_metal_ios[1595] = { using namespace metal; - struct fs_params + struct shader_uniforms { - float2 u_texture_size; - float u_aaf; - float u_aa_scale; + float show_normals; + float show_noise; }; - struct shader_uniforms + struct fs_params { - float amplitude; - float time; - float show_noise; + float2 u_texture_size; }; struct main0_out @@ -5102,10 +5460,10 @@ static const char shallow_water_vs_source_metal_ios[1595] = { float4 v_col [[user(locn5)]]; float v_radius [[user(locn6)]]; float v_stroke [[user(locn7)]]; - float v_type [[user(locn8)]]; - float v_alpha [[user(locn9)]]; - float v_fill [[user(locn10)]]; - float v_aa [[user(locn11)]]; + float v_aa [[user(locn8)]]; + float v_type [[user(locn9)]]; + float v_alpha [[user(locn10)]]; + float v_fill [[user(locn11)]]; float2 v_posH [[user(locn12)]]; float4 v_user [[user(locn13)]]; }; @@ -5113,8 +5471,8 @@ static const char shallow_water_vs_source_metal_ios[1595] = { static inline __attribute__((always_inline)) float2 smooth_uv(thread const float2& uv, thread const float2& texture_size) { - float2 _204 = floor(fma(uv, texture_size, float2(0.5))); - return (_204 + fast::clamp(fma(uv, texture_size, -_204) / fwidth(uv * texture_size), float2(-0.5), float2(0.5))) / texture_size; + float2 _216 = floor(fma(uv, texture_size, float2(0.5))); + return (_216 + fast::clamp(fma(uv, texture_size, -_216) / fwidth(uv * texture_size), float2(-0.5), float2(0.5))) / texture_size; } static inline __attribute__((always_inline)) @@ -5126,16 +5484,16 @@ static const char shallow_water_vs_source_metal_ios[1595] = { static inline __attribute__((always_inline)) float overlay(thread const float& base, thread const float& blend) { - float _104; + float _116; if (base <= 0.5) { - _104 = (2.0 * base) * blend; + _116 = (2.0 * base) * blend; } else { - _104 = fma((1.0 - base) * (-2.0), 1.0 - blend, 1.0); + _116 = fma((1.0 - base) * (-2.0), 1.0 - blend, 1.0); } - return _104; + return _116; } static inline __attribute__((always_inline)) @@ -5173,8 +5531,8 @@ static const char shallow_water_vs_source_metal_ios[1595] = { static inline __attribute__((always_inline)) float distance_aabb(thread const float2& p, thread const float2& he) { - float2 _357 = abs(p) - he; - return length(fast::max(_357, float2(0.0))) + fast::min(fast::max(_357.x, _357.y), 0.0); + float2 _360 = abs(p) - he; + return length(fast::max(_360, float2(0.0))) + fast::min(fast::max(_360.x, _360.y), 0.0); } static inline __attribute__((always_inline)) @@ -5191,42 +5549,42 @@ static const char shallow_water_vs_source_metal_ios[1595] = { static inline __attribute__((always_inline)) float safe_div(thread const float& a, thread const float& b) { - float _225; + float _237; if (b == 0.0) { - _225 = 0.0; + _237 = 0.0; } else { - _225 = a / b; + _237 = a / b; } - return _225; + return _237; } static inline __attribute__((always_inline)) float safe_len(thread const float2& v) { - float _238 = dot(v, v); - float _241; - if (_238 == 0.0) + float _250 = dot(v, v); + float _253; + if (_250 == 0.0) { - _241 = 0.0; + _253 = 0.0; } else { - _241 = sqrt(_238); + _253 = sqrt(_250); } - return _241; + return _253; } static inline __attribute__((always_inline)) float distance_segment(thread const float2& p, thread const float2& a, thread const float2& b) { - float2 _402 = b - a; - float2 _406 = p - a; - float param = dot(_406, _402); - float param_1 = dot(_402, _402); - float2 param_2 = _406 - (_402 * fast::clamp(safe_div(param, param_1), 0.0, 1.0)); + float2 _405 = b - a; + float2 _409 = p - a; + float param = dot(_409, _405); + float param_1 = dot(_405, _405); + float2 param_2 = _409 - (_405 * fast::clamp(safe_div(param, param_1), 0.0, 1.0)); return safe_len(param_2); } @@ -5239,32 +5597,32 @@ static const char shallow_water_vs_source_metal_ios[1595] = { static inline __attribute__((always_inline)) float distance_triangle(thread const float2& p, thread const float2& a, thread const float2& b, thread const float2& c) { - float2 _432 = b - a; - float2 _436 = c - b; - float2 _440 = a - c; - float2 _444 = p - a; - float2 _448 = p - b; - float2 _452 = p - c; - float param = dot(_444, _432); - float param_1 = dot(_432, _432); - float2 _467 = _444 - (_432 * fast::clamp(safe_div(param, param_1), 0.0, 1.0)); - float param_2 = dot(_448, _436); - float param_3 = dot(_436, _436); - float2 _482 = _448 - (_436 * fast::clamp(safe_div(param_2, param_3), 0.0, 1.0)); - float param_4 = dot(_452, _440); - float param_5 = dot(_440, _440); - float2 _497 = _452 - (_440 * fast::clamp(safe_div(param_4, param_5), 0.0, 1.0)); - float2 param_6 = _432; - float2 param_7 = _440; - float _503 = det2(param_6, param_7); - float2 param_8 = _444; - float2 param_9 = _432; - float2 param_10 = _448; - float2 param_11 = _436; - float2 param_12 = _452; - float2 param_13 = _440; - float2 _539 = fast::min(fast::min(float2(dot(_467, _467), _503 * det2(param_8, param_9)), float2(dot(_482, _482), _503 * det2(param_10, param_11))), float2(dot(_497, _497), _503 * det2(param_12, param_13))); - return (-sqrt(_539.x)) * sign(_539.y); + float2 _435 = b - a; + float2 _439 = c - b; + float2 _443 = a - c; + float2 _447 = p - a; + float2 _451 = p - b; + float2 _455 = p - c; + float param = dot(_447, _435); + float param_1 = dot(_435, _435); + float2 _470 = _447 - (_435 * fast::clamp(safe_div(param, param_1), 0.0, 1.0)); + float param_2 = dot(_451, _439); + float param_3 = dot(_439, _439); + float2 _485 = _451 - (_439 * fast::clamp(safe_div(param_2, param_3), 0.0, 1.0)); + float param_4 = dot(_455, _443); + float param_5 = dot(_443, _443); + float2 _500 = _455 - (_443 * fast::clamp(safe_div(param_4, param_5), 0.0, 1.0)); + float2 param_6 = _435; + float2 param_7 = _443; + float _506 = det2(param_6, param_7); + float2 param_8 = _447; + float2 param_9 = _435; + float2 param_10 = _451; + float2 param_11 = _439; + float2 param_12 = _455; + float2 param_13 = _443; + float2 _542 = fast::min(fast::min(float2(dot(_470, _470), _506 * det2(param_8, param_9)), float2(dot(_485, _485), _506 * det2(param_10, param_11))), float2(dot(_500, _500), _506 * det2(param_12, param_13))); + return (-sqrt(_542.x)) * sign(_542.y); } static inline __attribute__((always_inline)) @@ -5274,162 +5632,192 @@ static const char shallow_water_vs_source_metal_ios[1595] = { } static inline __attribute__((always_inline)) - float4 sdf(thread const float4& a, thread const float4& b, thread const float& d, thread float& v_stroke, constant fs_params& _282, thread float& v_aa, thread float4& result, thread float& v_fill) + float4 sdf(thread const float4& a, thread const float4& b, thread const float& d, thread float& v_stroke, thread float& v_aa, thread float4& result, thread float& v_fill) { - float _291 = _282.u_aaf * _282.u_aa_scale; float param = d; - float _295 = sdf_stroke(param, v_stroke); - float4 _334 = float4(v_aa); - result = mix(mix(select(a, b, bool4(_295 <= 0.0)), mix(b, a, float4(smoothstep(0.0, _291, _295))), _334), mix(select(a, b, bool4(fast::clamp(d, -1.0, 1.0) <= 0.0)), mix(b, a, float4(smoothstep(0.0, _291, d))), _334), float4(v_fill)); + float4 _303 = mix(b, a, float4(smoothstep(0.0, v_aa, sdf_stroke(param, v_stroke)))); + float4 _335 = float4(float(v_aa > 0.0)); + result = mix(mix(_303, _303, _335), mix(select(a, b, bool4(fast::clamp(d, -1.0, 1.0) <= 0.0)), mix(b, a, float4(smoothstep(0.0, v_aa, d))), _335), float4(v_fill)); return result; } static inline __attribute__((always_inline)) - float4 shader(thread const float4& color, thread const float2& pos, thread const float2& uv, thread const float4& params, texture2d noise_tex, sampler noise_texSmplr, constant shader_uniforms& _572, texture2d water_tex, sampler water_texSmplr) + float2 normal_from_heightmap(texture2d tex, sampler texSmplr, thread const float2& uv) + { + float4 _574 = tex.sample(texSmplr, uv, int2(0, -1)); + float _575 = _574.x; + return float2(tex.sample(texSmplr, uv, int2(-1, 1)).x - _575, tex.sample(texSmplr, uv, int2(1)).x - _575); + } + + static inline __attribute__((always_inline)) + float4 normal_to_color(thread const float2& n) { - float4 _577 = noise_tex.sample(noise_texSmplr, ((float2(uv.x * 5.0, uv.y * 3.75) * 0.5) + float2(_572.time))); - float _579 = _577.x - 0.5; - float4 c = water_tex.sample(water_texSmplr, (uv + ((float2(0.001562500023283064365386962890625, 0.00208333344198763370513916015625) * _579) * _572.amplitude))); - float4 _602; - if (_572.show_noise > 0.0) + return float4((n * 0.5) + float2(0.5), 1.0, 1.0); + } + + static inline __attribute__((always_inline)) + float4 shader(thread const float4& color, thread const float2& pos, thread const float2& uv, thread const float4& params, texture2d noise_tex, sampler noise_texSmplr, texture2d wavelets_tex, sampler wavelets_texSmplr, texture2d scene_tex, sampler scene_texSmplr, constant shader_uniforms& _651) + { + float2 param = uv; + float2 _604 = normal_from_heightmap(noise_tex, noise_texSmplr, param); + float2 param_1 = uv + ((_604 * float2(0.0062500000931322574615478515625, 0.008333333767950534820556640625)) * 10.0); + float2 _615 = normal_from_heightmap(wavelets_tex, wavelets_texSmplr, param_1); + float2 param_2 = _604; + float2 param_3 = _615; + float2 _631 = _604 + _615; + float4 c = mix(scene_tex.sample(scene_texSmplr, (uv + ((_631 * float2(0.0062500000931322574615478515625, 0.008333333767950534820556640625)) * 10.0))), float4(1.0), float4((length(_631) > 0.20000000298023223876953125) ? 0.100000001490116119384765625 : 0.0)); + float4 _656; + if (_651.show_normals > 0.0) + { + float2 param_4 = _604; + float2 param_5 = _615; + _656 = mix(normal_to_color(param_4), normal_to_color(param_5), float4(0.25)); + } + else + { + _656 = c; + } + c = _656; + float4 _673; + if (_651.show_noise > 0.0) { - _602 = float4(_579) + float4(0.5); + _673 = noise_tex.sample(noise_texSmplr, uv); } else { - _602 = c; + _673 = c; } - c = _602; - return _602; + c = _673; + return _673; } - fragment main0_out main0(main0_in in [[stage_in]], constant fs_params& _282 [[buffer(0)]], constant shader_uniforms& _572 [[buffer(1)]], texture2d noise_tex [[texture(0)]], texture2d water_tex [[texture(1)]], texture2d u_image [[texture(2)]], sampler noise_texSmplr [[sampler(0)]], sampler water_texSmplr [[sampler(1)]], sampler u_imageSmplr [[sampler(2)]]) + fragment main0_out main0(main0_in in [[stage_in]], constant shader_uniforms& _651 [[buffer(0)]], constant fs_params& _756 [[buffer(1)]], texture2d noise_tex [[texture(0)]], texture2d wavelets_tex [[texture(1)]], texture2d scene_tex [[texture(2)]], texture2d u_image [[texture(3)]], sampler noise_texSmplr [[sampler(0)]], sampler wavelets_texSmplr [[sampler(1)]], sampler scene_texSmplr [[sampler(2)]], sampler u_imageSmplr [[sampler(3)]]) { main0_out out = {}; - bool _618 = in.v_type >= 0.0; - bool _624; - if (_618) + bool _689 = in.v_type >= 0.0; + bool _695; + if (_689) { - _624 = in.v_type < 0.00196078442968428134918212890625; + _695 = in.v_type < 0.00196078442968428134918212890625; } else { - _624 = _618; + _695 = _689; } - bool _627 = in.v_type > 0.00196078442968428134918212890625; - bool _633; - if (_627) + bool _698 = in.v_type > 0.00196078442968428134918212890625; + bool _704; + if (_698) { - _633 = in.v_type < 0.0058823530562222003936767578125; + _704 = in.v_type < 0.0058823530562222003936767578125; } else { - _633 = _627; + _704 = _698; } - bool _636 = in.v_type > 0.0058823530562222003936767578125; - bool _642; - if (_636) + bool _707 = in.v_type > 0.0058823530562222003936767578125; + bool _713; + if (_707) { - _642 = in.v_type < 0.009803921915590763092041015625; + _713 = in.v_type < 0.009803921915590763092041015625; } else { - _642 = _636; + _713 = _707; } - bool _645 = in.v_type > 0.009803921915590763092041015625; - bool _651; - if (_645) + bool _716 = in.v_type > 0.009803921915590763092041015625; + bool _722; + if (_716) { - _651 = in.v_type < 0.013725490309298038482666015625; + _722 = in.v_type < 0.013725490309298038482666015625; } else { - _651 = _645; + _722 = _716; } - bool _654 = in.v_type > 0.013725490309298038482666015625; - bool _660; - if (_654) + bool _725 = in.v_type > 0.013725490309298038482666015625; + bool _731; + if (_725) { - _660 = in.v_type < 0.01764705963432788848876953125; + _731 = in.v_type < 0.01764705963432788848876953125; } else { - _660 = _654; + _731 = _725; } - bool _663 = in.v_type > 0.01764705963432788848876953125; - bool _669; - if (_663) + bool _734 = in.v_type > 0.01764705963432788848876953125; + bool _740; + if (_734) { - _669 = in.v_type < 0.02156862802803516387939453125; + _740 = in.v_type < 0.02156862802803516387939453125; } else { - _669 = _663; + _740 = _734; } float4 c = float4(0.0); - float4 _676; - if (!(_624 && _633)) + float4 _747; + if (!(_695 && _704)) { float2 param = in.v_uv; - float2 param_1 = _282.u_texture_size; + float2 param_1 = _756.u_texture_size; float4 param_2 = u_image.sample(u_imageSmplr, smooth_uv(param, param_1)); - _676 = de_gamma(param_2); + _747 = de_gamma(param_2); } else { - _676 = c; + _747 = c; } - c = _676; - float4 _697; - if (_624) + c = _747; + float4 _771; + if (_695) { float4 param_3 = c; float4 param_4 = in.v_col; float4 param_5 = overlay(param_3, param_4); - _697 = gamma(param_5); + _771 = gamma(param_5); } else { - _697 = c; + _771 = c; } - c = _697; - float4 _713; - if (_633) + c = _771; + float4 _787; + if (_704) { - _713 = in.v_col * c.w; + _787 = in.v_col * c.w; } else { - _713 = c; + _787 = c; } - c = select(_713, in.v_col, bool4(_660)); + c = select(_787, in.v_col, bool4(_731)); float d = 0.0; - if (_642) + if (_713) { float2 param_6 = in.v_pos; float2 param_7 = in.v_a; float2 param_8 = in.v_b; float2 param_9 = in.v_c; - float _744 = distance_box(param_6, param_7, param_8, param_9); - d = _744; + float _818 = distance_box(param_6, param_7, param_8, param_9); + d = _818; } else { - if (_651) + if (_722) { float2 param_10 = in.v_pos; float2 param_11 = in.v_a; float2 param_12 = in.v_b; - float _755 = distance_segment(param_10, param_11, param_12); - d = _755; + float _829 = distance_segment(param_10, param_11, param_12); + d = _829; float2 param_13 = in.v_pos; float2 param_14 = in.v_b; float2 param_15 = in.v_c; - d = fast::min(_755, distance_segment(param_13, param_14, param_15)); + d = fast::min(_829, distance_segment(param_13, param_14, param_15)); } else { - if (_669) + if (_740) { float2 param_16 = in.v_pos; float2 param_17 = in.v_a; @@ -5439,28 +5827,28 @@ static const char shallow_water_vs_source_metal_ios[1595] = { } } } - float4 _786; - if (((!_624) && (!_633)) && (!_660)) + float4 _860; + if (((!_695) && (!_704)) && (!_731)) { float4 param_20 = c; float4 param_21 = in.v_col; float param_22 = d - in.v_radius; - float4 _798 = sdf(param_20, param_21, param_22, in.v_stroke, _282, in.v_aa, out.result, in.v_fill); - _786 = _798; + float4 _872 = sdf(param_20, param_21, param_22, in.v_stroke, in.v_aa, out.result, in.v_fill); + _860 = _872; } else { - _786 = c; + _860 = c; } - float4 _805 = _786 * in.v_alpha; - c = _805; - float4 param_23 = _805; + float4 _879 = _860 * in.v_alpha; + c = _879; + float4 param_23 = _879; float2 param_24 = in.v_pos; - float2 param_25 = (in.v_posH + float2(1.0)) * 0.5; + float2 param_25 = ((in.v_posH + float2(1.0)) * 0.5) * float2(1.0, -1.0); float4 param_26 = in.v_user; - float4 _821 = shader(param_23, param_24, param_25, param_26, noise_tex, noise_texSmplr, _572, water_tex, water_texSmplr); - c = _821; - if (_821.w == 0.0) + float4 _897 = shader(param_23, param_24, param_25, param_26, noise_tex, noise_texSmplr, wavelets_tex, wavelets_texSmplr, scene_tex, scene_texSmplr, _651); + c = _897; + if (_897.w == 0.0) { discard_fragment(); } @@ -5469,7 +5857,7 @@ static const char shallow_water_vs_source_metal_ios[1595] = { } */ -static const char shallow_water_fs_source_metal_ios[11243] = { +static const char shallow_water_fs_source_metal_ios[12398] = { 0x23,0x70,0x72,0x61,0x67,0x6d,0x61,0x20,0x63,0x6c,0x61,0x6e,0x67,0x20,0x64,0x69, 0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x64, 0x20,0x22,0x2d,0x57,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x2d,0x70,0x72,0x6f,0x74, @@ -5478,701 +5866,773 @@ static const char shallow_water_fs_source_metal_ios[11243] = { 0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x73,0x69,0x6d,0x64,0x2f, 0x73,0x69,0x6d,0x64,0x2e,0x68,0x3e,0x0a,0x0a,0x75,0x73,0x69,0x6e,0x67,0x20,0x6e, 0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x6d,0x65,0x74,0x61,0x6c,0x3b,0x0a, - 0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d, - 0x73,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x75, - 0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x75,0x5f,0x61,0x61,0x66,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x75,0x5f,0x61,0x61,0x5f,0x73, - 0x63,0x61,0x6c,0x65,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74, - 0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x5f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73, - 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x61,0x6d,0x70, - 0x6c,0x69,0x74,0x75,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x74,0x69,0x6d,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x73,0x68,0x6f,0x77,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x3b,0x0a,0x7d,0x3b, - 0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f, - 0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, - 0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x5b,0x5b,0x63,0x6f,0x6c,0x6f,0x72,0x28,0x30, - 0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20, - 0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x70,0x6f,0x73,0x20,0x5b,0x5b,0x75,0x73, - 0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x61,0x20,0x5b,0x5b,0x75,0x73, - 0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x62,0x20,0x5b,0x5b,0x75,0x73, - 0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x32,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x63,0x20,0x5b,0x5b,0x75,0x73, - 0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x33,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x75,0x76,0x20,0x5b,0x5b,0x75, - 0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x34,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x20,0x5b, - 0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x35,0x29,0x5d,0x5d,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x72,0x61,0x64,0x69, - 0x75,0x73,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x36,0x29, + 0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x5f,0x75, + 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x73,0x68,0x6f,0x77,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x73, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x68,0x6f,0x77, + 0x5f,0x6e,0x6f,0x69,0x73,0x65,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75, + 0x63,0x74,0x20,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x0a,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x75,0x5f,0x74,0x65,0x78,0x74, + 0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74, + 0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x0a,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x72,0x65,0x73,0x75, + 0x6c,0x74,0x20,0x5b,0x5b,0x63,0x6f,0x6c,0x6f,0x72,0x28,0x30,0x29,0x5d,0x5d,0x3b, + 0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e, + 0x30,0x5f,0x69,0x6e,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x20,0x76,0x5f,0x70,0x6f,0x73,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c, + 0x6f,0x63,0x6e,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x20,0x76,0x5f,0x61,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c, + 0x6f,0x63,0x6e,0x31,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x20,0x76,0x5f,0x62,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c, + 0x6f,0x63,0x6e,0x32,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x20,0x76,0x5f,0x63,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c, + 0x6f,0x63,0x6e,0x33,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x20,0x76,0x5f,0x75,0x76,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28, + 0x6c,0x6f,0x63,0x6e,0x34,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x34,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x20,0x5b,0x5b,0x75,0x73,0x65, + 0x72,0x28,0x6c,0x6f,0x63,0x6e,0x35,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x20,0x5b, + 0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x36,0x29,0x5d,0x5d,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x73,0x74,0x72,0x6f, + 0x6b,0x65,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x37,0x29, 0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f, - 0x73,0x74,0x72,0x6f,0x6b,0x65,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f, - 0x63,0x6e,0x37,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28, - 0x6c,0x6f,0x63,0x6e,0x38,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x20,0x5b,0x5b,0x75,0x73, - 0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x39,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x20,0x5b,0x5b, - 0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x30,0x29,0x5d,0x5d,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x61,0x61,0x20,0x5b, - 0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x31,0x29,0x5d,0x5d,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x70,0x6f, - 0x73,0x48,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x32, - 0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, - 0x76,0x5f,0x75,0x73,0x65,0x72,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f, - 0x63,0x6e,0x31,0x33,0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x61, + 0x61,0x61,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x38,0x29, + 0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f, + 0x74,0x79,0x70,0x65,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e, + 0x39,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c, + 0x6f,0x63,0x6e,0x31,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x20,0x5b,0x5b,0x75,0x73,0x65, + 0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x31,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x70,0x6f,0x73,0x48,0x20,0x5b, + 0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x32,0x29,0x5d,0x5d,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x76,0x5f,0x75,0x73, + 0x65,0x72,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x33, + 0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20, + 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75, + 0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c, + 0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x73,0x6d,0x6f, + 0x6f,0x74,0x68,0x5f,0x75,0x76,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, + 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x75,0x76,0x2c,0x20, + 0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x26,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a, + 0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, + 0x5f,0x32,0x31,0x36,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x66,0x6d,0x61, + 0x28,0x75,0x76,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a, + 0x65,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e,0x35,0x29,0x29,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x5f,0x32, + 0x31,0x36,0x20,0x2b,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70, + 0x28,0x66,0x6d,0x61,0x28,0x75,0x76,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, + 0x5f,0x73,0x69,0x7a,0x65,0x2c,0x20,0x2d,0x5f,0x32,0x31,0x36,0x29,0x20,0x2f,0x20, + 0x66,0x77,0x69,0x64,0x74,0x68,0x28,0x75,0x76,0x20,0x2a,0x20,0x74,0x65,0x78,0x74, + 0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x28,0x2d,0x30,0x2e,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28, + 0x30,0x2e,0x35,0x29,0x29,0x29,0x20,0x2f,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, + 0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63, + 0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62, + 0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e, + 0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x64,0x65, + 0x5f,0x67,0x61,0x6d,0x6d,0x61,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, + 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x63,0x29,0x0a,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x34,0x28,0x70,0x6f,0x77,0x28,0x61,0x62,0x73,0x28,0x63,0x2e,0x78,0x79,0x7a, + 0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x32,0x2e,0x32,0x30,0x30,0x30, + 0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31, + 0x32,0x35,0x29,0x29,0x2c,0x20,0x63,0x2e,0x77,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73, + 0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61, + 0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61, + 0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x74,0x68,0x72,0x65,0x61,0x64, + 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x62,0x61, + 0x73,0x65,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x62,0x6c,0x65,0x6e,0x64,0x29,0x0a,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x31,0x36,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x61,0x73,0x65,0x20,0x3c,0x3d, + 0x20,0x30,0x2e,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x36,0x20,0x3d,0x20,0x28,0x32,0x2e,0x30,0x20, + 0x2a,0x20,0x62,0x61,0x73,0x65,0x29,0x20,0x2a,0x20,0x62,0x6c,0x65,0x6e,0x64,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31, + 0x31,0x36,0x20,0x3d,0x20,0x66,0x6d,0x61,0x28,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20, + 0x62,0x61,0x73,0x65,0x29,0x20,0x2a,0x20,0x28,0x2d,0x32,0x2e,0x30,0x29,0x2c,0x20, + 0x31,0x2e,0x30,0x20,0x2d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2c,0x20,0x31,0x2e,0x30, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, + 0x75,0x72,0x6e,0x20,0x5f,0x31,0x31,0x36,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61, 0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74, 0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73, - 0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x20,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x5f,0x75,0x76,0x28,0x74,0x68,0x72,0x65,0x61, - 0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20, - 0x75,0x76,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, - 0x5f,0x73,0x69,0x7a,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x20,0x5f,0x32,0x30,0x34,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x6f,0x72, - 0x28,0x66,0x6d,0x61,0x28,0x75,0x76,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, - 0x5f,0x73,0x69,0x7a,0x65,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e, - 0x35,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, - 0x20,0x28,0x5f,0x32,0x30,0x34,0x20,0x2b,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63, - 0x6c,0x61,0x6d,0x70,0x28,0x66,0x6d,0x61,0x28,0x75,0x76,0x2c,0x20,0x74,0x65,0x78, - 0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x2c,0x20,0x2d,0x5f,0x32,0x30,0x34, - 0x29,0x20,0x2f,0x20,0x66,0x77,0x69,0x64,0x74,0x68,0x28,0x75,0x76,0x20,0x2a,0x20, - 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x29,0x2c,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x28,0x2d,0x30,0x2e,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x28,0x30,0x2e,0x35,0x29,0x29,0x29,0x20,0x2f,0x20,0x74,0x65,0x78, - 0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74, + 0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20, + 0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x62,0x61, + 0x73,0x65,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x62,0x6c,0x65,0x6e,0x64,0x29,0x0a, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20, + 0x62,0x6c,0x65,0x6e,0x64,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x62,0x61,0x73, + 0x65,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2e,0x79, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x34,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x2e,0x7a,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20, + 0x3d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72, + 0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x6f,0x76,0x65, + 0x72,0x6c,0x61,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x29,0x2c,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x2c, + 0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a, + 0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f, + 0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77, + 0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f, + 0x61,0x74,0x34,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x74,0x68,0x72,0x65, + 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26, + 0x20,0x62,0x61,0x73,0x65,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, + 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x62,0x6c,0x65,0x6e, + 0x64,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x2e,0x78,0x79,0x7a, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2e,0x78,0x79,0x7a, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x34,0x28,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x62,0x61,0x73, + 0x65,0x2e,0x77,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20, + 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75, + 0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c, + 0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x67,0x61,0x6d, + 0x6d,0x61,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x63,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x70, + 0x6f,0x77,0x28,0x61,0x62,0x73,0x28,0x63,0x2e,0x78,0x79,0x7a,0x29,0x2c,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x34,0x35,0x34,0x35,0x34,0x35,0x34,0x36, + 0x38,0x30,0x39,0x31,0x39,0x36,0x34,0x37,0x32,0x31,0x36,0x37,0x39,0x36,0x38,0x37, + 0x35,0x29,0x29,0x2c,0x20,0x63,0x2e,0x77,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74, 0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74, 0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79, 0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74, - 0x34,0x20,0x64,0x65,0x5f,0x67,0x61,0x6d,0x6d,0x61,0x28,0x74,0x68,0x72,0x65,0x61, - 0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20, - 0x63,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x70,0x6f,0x77,0x28,0x61,0x62,0x73,0x28,0x63, - 0x2e,0x78,0x79,0x7a,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x32,0x2e, - 0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38, - 0x32,0x30,0x33,0x31,0x32,0x35,0x29,0x29,0x2c,0x20,0x63,0x2e,0x77,0x29,0x3b,0x0a, - 0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65, - 0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28, - 0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x74,0x68, - 0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x26,0x20,0x62,0x61,0x73,0x65,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63, - 0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x62,0x6c,0x65,0x6e, - 0x64,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, - 0x31,0x30,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x61,0x73, - 0x65,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x30,0x34,0x20,0x3d,0x20,0x28, - 0x32,0x2e,0x30,0x20,0x2a,0x20,0x62,0x61,0x73,0x65,0x29,0x20,0x2a,0x20,0x62,0x6c, - 0x65,0x6e,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, - 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x5f,0x31,0x30,0x34,0x20,0x3d,0x20,0x66,0x6d,0x61,0x28,0x28,0x31,0x2e, - 0x30,0x20,0x2d,0x20,0x62,0x61,0x73,0x65,0x29,0x20,0x2a,0x20,0x28,0x2d,0x32,0x2e, - 0x30,0x29,0x2c,0x20,0x31,0x2e,0x30,0x20,0x2d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2c, - 0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x31,0x30,0x34,0x3b,0x0a,0x7d,0x0a, - 0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f, - 0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c, - 0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c, - 0x6f,0x61,0x74,0x33,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x74,0x68,0x72, - 0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x26,0x20,0x62,0x61,0x73,0x65,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63, - 0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x62,0x6c,0x65, - 0x6e,0x64,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x2e,0x78,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x20,0x3d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d, - 0x20,0x62,0x61,0x73,0x65,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x62,0x6c,0x65, - 0x6e,0x64,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x2e,0x7a, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x35,0x20,0x3d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2e,0x7a,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x28,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61, - 0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x33,0x29,0x2c,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x29,0x3b, - 0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e, - 0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28, - 0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29, - 0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28, - 0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x34,0x26,0x20,0x62,0x61,0x73,0x65,0x2c,0x20,0x74,0x68,0x72,0x65,0x61, - 0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20, - 0x62,0x6c,0x65,0x6e,0x64,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x62,0x61,0x73,0x65, - 0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x62,0x6c,0x65,0x6e,0x64, - 0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28, - 0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c, - 0x20,0x62,0x61,0x73,0x65,0x2e,0x77,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61, - 0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74, - 0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73, - 0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34, - 0x20,0x67,0x61,0x6d,0x6d,0x61,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, - 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x63,0x29,0x0a,0x7b, + 0x32,0x20,0x73,0x6b,0x65,0x77,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, + 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x76,0x29,0x0a,0x7b, 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x34,0x28,0x70,0x6f,0x77,0x28,0x61,0x62,0x73,0x28,0x63,0x2e,0x78,0x79,0x7a, - 0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x34,0x35,0x34,0x35, - 0x34,0x35,0x34,0x36,0x38,0x30,0x39,0x31,0x39,0x36,0x34,0x37,0x32,0x31,0x36,0x37, - 0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x2c,0x20,0x63,0x2e,0x77,0x29,0x3b,0x0a,0x7d, + 0x74,0x32,0x28,0x2d,0x76,0x2e,0x79,0x2c,0x20,0x76,0x2e,0x78,0x29,0x3b,0x0a,0x7d, 0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20, 0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61, 0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x20,0x73,0x6b,0x65,0x77,0x28,0x74,0x68,0x72,0x65,0x61, - 0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20, - 0x76,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x2d,0x76,0x2e,0x79,0x2c,0x20,0x76,0x2e,0x78, - 0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c, - 0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f, - 0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65, - 0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63, - 0x65,0x5f,0x61,0x61,0x62,0x62,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, - 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x70,0x2c,0x20,0x74, - 0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x32,0x26,0x20,0x68,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x20,0x5f,0x33,0x35,0x37,0x20,0x3d,0x20,0x61,0x62,0x73,0x28, - 0x70,0x29,0x20,0x2d,0x20,0x68,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, - 0x75,0x72,0x6e,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x66,0x61,0x73,0x74,0x3a, - 0x3a,0x6d,0x61,0x78,0x28,0x5f,0x33,0x35,0x37,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x32,0x28,0x30,0x2e,0x30,0x29,0x29,0x29,0x20,0x2b,0x20,0x66,0x61,0x73,0x74,0x3a, - 0x3a,0x6d,0x69,0x6e,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x5f, - 0x33,0x35,0x37,0x2e,0x78,0x2c,0x20,0x5f,0x33,0x35,0x37,0x2e,0x79,0x29,0x2c,0x20, - 0x30,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20, - 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75, - 0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c, - 0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74, - 0x61,0x6e,0x63,0x65,0x5f,0x62,0x6f,0x78,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20, + 0x6c,0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x61,0x61, + 0x62,0x62,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x70,0x2c,0x20,0x74,0x68,0x72,0x65,0x61, 0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20, - 0x63,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x68,0x65,0x2c,0x20,0x74,0x68,0x72,0x65, - 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26, - 0x20,0x75,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x75,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x70,0x20,0x2d,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d,0x20, - 0x74,0x72,0x61,0x6e,0x73,0x70,0x6f,0x73,0x65,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x78,0x32,0x28,0x75,0x2c,0x20,0x73,0x6b,0x65,0x77,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x29,0x29,0x29,0x20,0x2a,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x70,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x20,0x3d,0x20,0x68,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, - 0x74,0x75,0x72,0x6e,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x61,0x61, - 0x62,0x62,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20, - 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75, - 0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c, - 0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x61,0x66,0x65, - 0x5f,0x64,0x69,0x76,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73, - 0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x61,0x2c,0x20,0x74,0x68,0x72,0x65, - 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20, - 0x62,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, - 0x32,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x20,0x3d, - 0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x32,0x35,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32, - 0x32,0x35,0x20,0x3d,0x20,0x61,0x20,0x2f,0x20,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x32,0x32, - 0x35,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c, - 0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f, - 0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65, - 0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x61,0x66,0x65,0x5f,0x6c,0x65, - 0x6e,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x76,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x33,0x38,0x20,0x3d,0x20,0x64,0x6f,0x74, - 0x28,0x76,0x2c,0x20,0x76,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x5f,0x32,0x34,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x5f,0x32,0x33,0x38,0x20,0x3d,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x34,0x31,0x20, - 0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x5f,0x32,0x34,0x31,0x20,0x3d,0x20,0x73,0x71,0x72,0x74,0x28, - 0x5f,0x32,0x33,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x32,0x34,0x31,0x3b,0x0a,0x7d,0x0a, - 0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f, - 0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c, - 0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x73,0x65,0x67, - 0x6d,0x65,0x6e,0x74,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73, - 0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x70,0x2c,0x20,0x74,0x68,0x72, - 0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x26,0x20,0x61,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73, - 0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x62,0x29,0x0a,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x30,0x32,0x20,0x3d, - 0x20,0x62,0x20,0x2d,0x20,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x32,0x20,0x5f,0x34,0x30,0x36,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x61,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x30,0x36,0x2c,0x20,0x5f,0x34,0x30, - 0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x30,0x32, - 0x2c,0x20,0x5f,0x34,0x30,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x34, - 0x30,0x36,0x20,0x2d,0x20,0x28,0x5f,0x34,0x30,0x32,0x20,0x2a,0x20,0x66,0x61,0x73, - 0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x66,0x65,0x5f,0x64,0x69, - 0x76,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x61,0x66,0x65,0x5f,0x6c, - 0x65,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x7d,0x0a,0x0a, - 0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f, - 0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77, - 0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x64,0x65,0x74,0x32,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63, - 0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x61,0x2c,0x20, - 0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x26,0x20,0x62,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, - 0x74,0x75,0x72,0x6e,0x20,0x66,0x6d,0x61,0x28,0x61,0x2e,0x78,0x2c,0x20,0x62,0x2e, - 0x79,0x2c,0x20,0x2d,0x28,0x61,0x2e,0x79,0x20,0x2a,0x20,0x62,0x2e,0x78,0x29,0x29, + 0x68,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x20,0x5f,0x33,0x36,0x30,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x70,0x29,0x20,0x2d, + 0x20,0x68,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, + 0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78, + 0x28,0x5f,0x33,0x36,0x30,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e, + 0x30,0x29,0x29,0x29,0x20,0x2b,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x69,0x6e, + 0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x5f,0x33,0x36,0x30,0x2e, + 0x78,0x2c,0x20,0x5f,0x33,0x36,0x30,0x2e,0x79,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29, 0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69, 0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f, 0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29, 0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65, - 0x5f,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x28,0x74,0x68,0x72,0x65,0x61,0x64, - 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x70, - 0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x61,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64, - 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x62, - 0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x63,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x33,0x32,0x20,0x3d,0x20,0x62,0x20, - 0x2d,0x20,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, - 0x5f,0x34,0x33,0x36,0x20,0x3d,0x20,0x63,0x20,0x2d,0x20,0x62,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x34,0x30,0x20,0x3d,0x20, - 0x61,0x20,0x2d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x32,0x20,0x5f,0x34,0x34,0x34,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x61,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x34,0x38,0x20, - 0x3d,0x20,0x70,0x20,0x2d,0x20,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x20,0x5f,0x34,0x35,0x32,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x63, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x34,0x34,0x2c,0x20,0x5f,0x34, - 0x33,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x33, - 0x32,0x2c,0x20,0x5f,0x34,0x33,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x36,0x37,0x20,0x3d,0x20,0x5f,0x34,0x34,0x34, - 0x20,0x2d,0x20,0x28,0x5f,0x34,0x33,0x32,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a, - 0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28, - 0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c, - 0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d, - 0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x34,0x38,0x2c,0x20,0x5f,0x34,0x33,0x36,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x33,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x33,0x36,0x2c,0x20, - 0x5f,0x34,0x33,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x32,0x20,0x5f,0x34,0x38,0x32,0x20,0x3d,0x20,0x5f,0x34,0x34,0x38,0x20,0x2d,0x20, - 0x28,0x5f,0x34,0x33,0x36,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c, - 0x61,0x6d,0x70,0x28,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x2c,0x20, - 0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20, - 0x64,0x6f,0x74,0x28,0x5f,0x34,0x35,0x32,0x2c,0x20,0x5f,0x34,0x34,0x30,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x35,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x34,0x30,0x2c,0x20,0x5f, - 0x34,0x34,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x20,0x5f,0x34,0x39,0x37,0x20,0x3d,0x20,0x5f,0x34,0x35,0x32,0x20,0x2d,0x20,0x28, - 0x5f,0x34,0x34,0x30,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61, - 0x6d,0x70,0x28,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20,0x30, - 0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20, - 0x5f,0x34,0x33,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x34,0x34,0x30,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x35,0x30,0x33,0x20, - 0x3d,0x20,0x64,0x65,0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f, - 0x34,0x34,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x5f,0x34,0x33,0x32,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x30,0x20,0x3d,0x20,0x5f,0x34,0x34,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20, - 0x3d,0x20,0x5f,0x34,0x33,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x5f,0x34, - 0x35,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x5f,0x34,0x34,0x30,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x35,0x33,0x39,0x20, - 0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x69,0x6e,0x28,0x66,0x61,0x73,0x74, - 0x3a,0x3a,0x6d,0x69,0x6e,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x64,0x6f,0x74, - 0x28,0x5f,0x34,0x36,0x37,0x2c,0x20,0x5f,0x34,0x36,0x37,0x29,0x2c,0x20,0x5f,0x35, - 0x30,0x33,0x20,0x2a,0x20,0x64,0x65,0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x29,0x29,0x2c,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x28,0x64,0x6f,0x74,0x28,0x5f,0x34,0x38,0x32,0x2c,0x20,0x5f, - 0x34,0x38,0x32,0x29,0x2c,0x20,0x5f,0x35,0x30,0x33,0x20,0x2a,0x20,0x64,0x65,0x74, - 0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x31,0x29,0x29,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28, - 0x64,0x6f,0x74,0x28,0x5f,0x34,0x39,0x37,0x2c,0x20,0x5f,0x34,0x39,0x37,0x29,0x2c, - 0x20,0x5f,0x35,0x30,0x33,0x20,0x2a,0x20,0x64,0x65,0x74,0x32,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x29, - 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28, - 0x2d,0x73,0x71,0x72,0x74,0x28,0x5f,0x35,0x33,0x39,0x2e,0x78,0x29,0x29,0x20,0x2a, - 0x20,0x73,0x69,0x67,0x6e,0x28,0x5f,0x35,0x33,0x39,0x2e,0x79,0x29,0x3b,0x0a,0x7d, - 0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20, - 0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61, - 0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x73,0x64,0x66,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x28, - 0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x26,0x20,0x64,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x26,0x20,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x29,0x0a,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x62,0x73,0x28, - 0x64,0x29,0x20,0x2d,0x20,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3b,0x0a,0x7d, + 0x5f,0x62,0x6f,0x78,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x26,0x20,0x70,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, + 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x63,0x2c,0x20,0x74, + 0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x26,0x20,0x68,0x65,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63, + 0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x75,0x29,0x0a, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x20,0x3d,0x20,0x75,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x2d,0x3d, + 0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d,0x20,0x74,0x72,0x61,0x6e, + 0x73,0x70,0x6f,0x73,0x65,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x78,0x32,0x28,0x75, + 0x2c,0x20,0x73,0x6b,0x65,0x77,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x29,0x29,0x20, + 0x2a,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20, + 0x3d,0x20,0x68,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, + 0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x61,0x61,0x62,0x62,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29, + 0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69, + 0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f, + 0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29, + 0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76, + 0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x26,0x20,0x61,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63, + 0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x62,0x29,0x0a,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x33,0x37,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x20,0x3d,0x3d,0x20,0x30,0x2e, + 0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x5f,0x32,0x33,0x37,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x33,0x37,0x20,0x3d, + 0x20,0x61,0x20,0x2f,0x20,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x32,0x33,0x37,0x3b,0x0a,0x7d, 0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20, 0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61, 0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66, - 0x6c,0x6f,0x61,0x74,0x34,0x20,0x73,0x64,0x66,0x28,0x74,0x68,0x72,0x65,0x61,0x64, - 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x61, - 0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x62,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64, - 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x64,0x2c, - 0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x76, - 0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e, - 0x74,0x20,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x26,0x20,0x5f,0x32,0x38, - 0x32,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26, - 0x20,0x76,0x5f,0x61,0x61,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x34,0x26,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x74,0x68, - 0x72,0x65,0x61,0x64,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x76,0x5f,0x66,0x69, - 0x6c,0x6c,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x5f,0x32,0x39,0x31,0x20,0x3d,0x20,0x5f,0x32,0x38,0x32,0x2e,0x75,0x5f,0x61,0x61, - 0x66,0x20,0x2a,0x20,0x5f,0x32,0x38,0x32,0x2e,0x75,0x5f,0x61,0x61,0x5f,0x73,0x63, - 0x61,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x32,0x39,0x35,0x20,0x3d,0x20,0x73,0x64,0x66,0x5f,0x73, - 0x74,0x72,0x6f,0x6b,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x76,0x5f,0x73, - 0x74,0x72,0x6f,0x6b,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x34,0x20,0x5f,0x33,0x33,0x34,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, - 0x28,0x76,0x5f,0x61,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75, - 0x6c,0x74,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x73,0x65,0x6c, - 0x65,0x63,0x74,0x28,0x61,0x2c,0x20,0x62,0x2c,0x20,0x62,0x6f,0x6f,0x6c,0x34,0x28, - 0x5f,0x32,0x39,0x35,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x30,0x29,0x29,0x2c,0x20,0x6d, - 0x69,0x78,0x28,0x62,0x2c,0x20,0x61,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28, - 0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x2c,0x20, - 0x5f,0x32,0x39,0x31,0x2c,0x20,0x5f,0x32,0x39,0x35,0x29,0x29,0x29,0x2c,0x20,0x5f, - 0x33,0x33,0x34,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x73,0x65,0x6c,0x65,0x63,0x74, - 0x28,0x61,0x2c,0x20,0x62,0x2c,0x20,0x62,0x6f,0x6f,0x6c,0x34,0x28,0x66,0x61,0x73, - 0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x64,0x2c,0x20,0x2d,0x31,0x2e,0x30, - 0x2c,0x20,0x31,0x2e,0x30,0x29,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x30,0x29,0x29,0x2c, - 0x20,0x6d,0x69,0x78,0x28,0x62,0x2c,0x20,0x61,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x34,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30, - 0x2c,0x20,0x5f,0x32,0x39,0x31,0x2c,0x20,0x64,0x29,0x29,0x29,0x2c,0x20,0x5f,0x33, - 0x33,0x34,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x76,0x5f,0x66,0x69, - 0x6c,0x6c,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, - 0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74, + 0x6c,0x6f,0x61,0x74,0x20,0x73,0x61,0x66,0x65,0x5f,0x6c,0x65,0x6e,0x28,0x74,0x68, + 0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x26,0x20,0x76,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x5f,0x32,0x35,0x30,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x76,0x2c,0x20, + 0x76,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32, + 0x35,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x32,0x35,0x30, + 0x20,0x3d,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x35,0x33,0x20,0x3d,0x20,0x30,0x2e, + 0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, + 0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x5f,0x32,0x35,0x33,0x20,0x3d,0x20,0x73,0x71,0x72,0x74,0x28,0x5f,0x32,0x35,0x30, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, + 0x75,0x72,0x6e,0x20,0x5f,0x32,0x35,0x33,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61, + 0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74, + 0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73, + 0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x73,0x65,0x67,0x6d,0x65,0x6e,0x74, + 0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x32,0x26,0x20,0x70,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20, + 0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x61,0x2c, + 0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x32,0x26,0x20,0x62,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x30,0x35,0x20,0x3d,0x20,0x62,0x20,0x2d, + 0x20,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f, + 0x34,0x30,0x39,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x61,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x64, + 0x6f,0x74,0x28,0x5f,0x34,0x30,0x39,0x2c,0x20,0x5f,0x34,0x30,0x35,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x30,0x35,0x2c,0x20,0x5f,0x34, + 0x30,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x34,0x30,0x39,0x20,0x2d, + 0x20,0x28,0x5f,0x34,0x30,0x35,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63, + 0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x30, + 0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72, + 0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x61,0x66,0x65,0x5f,0x6c,0x65,0x6e,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74, 0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72, 0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f, - 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, - 0x73,0x68,0x61,0x64,0x65,0x72,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, - 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x63,0x6f,0x6c,0x6f, - 0x72,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x70,0x6f,0x73,0x2c,0x20,0x74,0x68,0x72, - 0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x26,0x20,0x75,0x76,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e, - 0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x73,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f, - 0x61,0x74,0x3e,0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x2c,0x20,0x73, - 0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78, - 0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20, - 0x73,0x68,0x61,0x64,0x65,0x72,0x5f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x26, - 0x20,0x5f,0x35,0x37,0x32,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64, - 0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x77,0x61,0x74,0x65,0x72,0x5f,0x74,0x65, - 0x78,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x77,0x61,0x74,0x65,0x72, - 0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x35,0x37,0x37,0x20,0x3d,0x20,0x6e, - 0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28, - 0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20, - 0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x75,0x76,0x2e,0x78,0x20,0x2a,0x20, - 0x35,0x2e,0x30,0x2c,0x20,0x75,0x76,0x2e,0x79,0x20,0x2a,0x20,0x33,0x2e,0x37,0x35, - 0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x32,0x28,0x5f,0x35,0x37,0x32,0x2e,0x74,0x69,0x6d,0x65,0x29,0x29,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x35,0x37,0x39,0x20,0x3d, - 0x20,0x5f,0x35,0x37,0x37,0x2e,0x78,0x20,0x2d,0x20,0x30,0x2e,0x35,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x63,0x20,0x3d,0x20,0x77,0x61, - 0x74,0x65,0x72,0x5f,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x77, - 0x61,0x74,0x65,0x72,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x28, - 0x75,0x76,0x20,0x2b,0x20,0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e, - 0x30,0x30,0x31,0x35,0x36,0x32,0x35,0x30,0x30,0x30,0x32,0x33,0x32,0x38,0x33,0x30, - 0x36,0x34,0x33,0x36,0x35,0x33,0x38,0x36,0x39,0x36,0x32,0x38,0x39,0x30,0x36,0x32, - 0x35,0x2c,0x20,0x30,0x2e,0x30,0x30,0x32,0x30,0x38,0x33,0x33,0x33,0x33,0x34,0x34, - 0x31,0x39,0x38,0x37,0x36,0x33,0x33,0x37,0x30,0x35,0x31,0x33,0x39,0x31,0x36,0x30, - 0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2a,0x20,0x5f,0x35,0x37,0x39,0x29,0x20,0x2a, - 0x20,0x5f,0x35,0x37,0x32,0x2e,0x61,0x6d,0x70,0x6c,0x69,0x74,0x75,0x64,0x65,0x29, - 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f, - 0x36,0x30,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x35,0x37, - 0x32,0x2e,0x73,0x68,0x6f,0x77,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x20,0x3e,0x20,0x30, - 0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x5f,0x36,0x30,0x32,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28, - 0x5f,0x35,0x37,0x39,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x30, - 0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, - 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x5f,0x36,0x30,0x32,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x36,0x30,0x32,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x36,0x30,0x32,0x3b, - 0x0a,0x7d,0x0a,0x0a,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x6d,0x61,0x69, - 0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x28,0x6d,0x61,0x69, - 0x6e,0x30,0x5f,0x69,0x6e,0x20,0x69,0x6e,0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,0x65, - 0x5f,0x69,0x6e,0x5d,0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20, - 0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x26,0x20,0x5f,0x32,0x38,0x32,0x20, - 0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20,0x63, - 0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x5f,0x75, - 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x26,0x20,0x5f,0x35,0x37,0x32,0x20,0x5b,0x5b, - 0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x31,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78, - 0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x6e,0x6f, - 0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72, - 0x65,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32, - 0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x77,0x61,0x74,0x65,0x72,0x5f,0x74, - 0x65,0x78,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x31,0x29,0x5d, - 0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f, - 0x61,0x74,0x3e,0x20,0x75,0x5f,0x69,0x6d,0x61,0x67,0x65,0x20,0x5b,0x5b,0x74,0x65, - 0x78,0x74,0x75,0x72,0x65,0x28,0x32,0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70, - 0x6c,0x65,0x72,0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70, - 0x6c,0x72,0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x28,0x30,0x29,0x5d, - 0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x77,0x61,0x74,0x65,0x72, - 0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70, - 0x6c,0x65,0x72,0x28,0x31,0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65, - 0x72,0x20,0x75,0x5f,0x69,0x6d,0x61,0x67,0x65,0x53,0x6d,0x70,0x6c,0x72,0x20,0x5b, - 0x5b,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x28,0x32,0x29,0x5d,0x5d,0x29,0x0a,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f, - 0x75,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f, - 0x6c,0x20,0x5f,0x36,0x31,0x38,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x74,0x79, - 0x70,0x65,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62, - 0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x32,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, - 0x20,0x28,0x5f,0x36,0x31,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x32,0x34,0x20,0x3d,0x20,0x69,0x6e,0x2e, - 0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x31,0x39,0x36, - 0x30,0x37,0x38,0x34,0x34,0x32,0x39,0x36,0x38,0x34,0x32,0x38,0x31,0x33,0x34,0x39, - 0x31,0x38,0x32,0x31,0x32,0x38,0x39,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x32,0x34,0x20,0x3d, - 0x20,0x5f,0x36,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x32,0x37,0x20,0x3d,0x20,0x69,0x6e,0x2e, - 0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x31,0x39,0x36, - 0x30,0x37,0x38,0x34,0x34,0x32,0x39,0x36,0x38,0x34,0x32,0x38,0x31,0x33,0x34,0x39, - 0x31,0x38,0x32,0x31,0x32,0x38,0x39,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x33,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x66,0x20,0x28,0x5f,0x36,0x32,0x37,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x33,0x33,0x20,0x3d,0x20,0x69, - 0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x35, - 0x38,0x38,0x32,0x33,0x35,0x33,0x30,0x35,0x36,0x32,0x32,0x32,0x32,0x30,0x30,0x33, - 0x39,0x33,0x36,0x37,0x36,0x37,0x35,0x37,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x33,0x33,0x20, - 0x3d,0x20,0x5f,0x36,0x32,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x33,0x36,0x20,0x3d,0x20,0x69,0x6e, - 0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x35,0x38, - 0x38,0x32,0x33,0x35,0x33,0x30,0x35,0x36,0x32,0x32,0x32,0x32,0x30,0x30,0x33,0x39, - 0x33,0x36,0x37,0x36,0x37,0x35,0x37,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x34,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x66,0x20,0x28,0x5f,0x36,0x33,0x36,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x34,0x32,0x20,0x3d,0x20,0x69, - 0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x39, + 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64, + 0x65,0x74,0x32,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x61,0x2c,0x20,0x74,0x68,0x72,0x65, + 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26, + 0x20,0x62,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, + 0x20,0x66,0x6d,0x61,0x28,0x61,0x2e,0x78,0x2c,0x20,0x62,0x2e,0x79,0x2c,0x20,0x2d, + 0x28,0x61,0x2e,0x79,0x20,0x2a,0x20,0x62,0x2e,0x78,0x29,0x29,0x3b,0x0a,0x7d,0x0a, + 0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f, + 0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c, + 0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x74,0x72,0x69, + 0x61,0x6e,0x67,0x6c,0x65,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e, + 0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x70,0x2c,0x20,0x74,0x68, + 0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x26,0x20,0x61,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e, + 0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x62,0x2c,0x20,0x74,0x68, + 0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x26,0x20,0x63,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x20,0x5f,0x34,0x33,0x35,0x20,0x3d,0x20,0x62,0x20,0x2d,0x20,0x61,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x33,0x39, + 0x20,0x3d,0x20,0x63,0x20,0x2d,0x20,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x34,0x33,0x20,0x3d,0x20,0x61,0x20,0x2d,0x20, + 0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34, + 0x34,0x37,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x35,0x31,0x20,0x3d,0x20,0x70,0x20, + 0x2d,0x20,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, + 0x5f,0x34,0x35,0x35,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x63,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20, + 0x64,0x6f,0x74,0x28,0x5f,0x34,0x34,0x37,0x2c,0x20,0x5f,0x34,0x33,0x35,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x33,0x35,0x2c,0x20,0x5f, + 0x34,0x33,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x20,0x5f,0x34,0x37,0x30,0x20,0x3d,0x20,0x5f,0x34,0x34,0x37,0x20,0x2d,0x20,0x28, + 0x5f,0x34,0x33,0x35,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61, + 0x6d,0x70,0x28,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x30,0x2e,0x30, + 0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x64,0x6f,0x74, + 0x28,0x5f,0x34,0x35,0x31,0x2c,0x20,0x5f,0x34,0x33,0x39,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20, + 0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x33,0x39,0x2c,0x20,0x5f,0x34,0x33,0x39, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34, + 0x38,0x35,0x20,0x3d,0x20,0x5f,0x34,0x35,0x31,0x20,0x2d,0x20,0x28,0x5f,0x34,0x33, + 0x39,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28, + 0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c, + 0x20,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28, + 0x5f,0x34,0x35,0x35,0x2c,0x20,0x5f,0x34,0x34,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d, + 0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x34,0x33,0x2c,0x20,0x5f,0x34,0x34,0x33,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x35,0x30, + 0x30,0x20,0x3d,0x20,0x5f,0x34,0x35,0x35,0x20,0x2d,0x20,0x28,0x5f,0x34,0x34,0x33, + 0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73, + 0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20, + 0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x34,0x33,0x35, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x34,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x35,0x30,0x36,0x20,0x3d,0x20,0x64,0x65, + 0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f,0x34,0x34,0x37,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x39,0x20,0x3d,0x20,0x5f,0x34,0x33,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20, + 0x3d,0x20,0x5f,0x34,0x35,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x5f,0x34, + 0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x5f,0x34,0x35,0x35,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x33,0x20,0x3d,0x20,0x5f,0x34,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x35,0x34,0x32,0x20,0x3d,0x20,0x66,0x61, + 0x73,0x74,0x3a,0x3a,0x6d,0x69,0x6e,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x69, + 0x6e,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x64,0x6f,0x74,0x28,0x5f,0x34,0x37, + 0x30,0x2c,0x20,0x5f,0x34,0x37,0x30,0x29,0x2c,0x20,0x5f,0x35,0x30,0x36,0x20,0x2a, + 0x20,0x64,0x65,0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x39,0x29,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x28,0x64,0x6f,0x74,0x28,0x5f,0x34,0x38,0x35,0x2c,0x20,0x5f,0x34,0x38,0x35,0x29, + 0x2c,0x20,0x5f,0x35,0x30,0x36,0x20,0x2a,0x20,0x64,0x65,0x74,0x32,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31, + 0x29,0x29,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x64,0x6f,0x74,0x28, + 0x5f,0x35,0x30,0x30,0x2c,0x20,0x5f,0x35,0x30,0x30,0x29,0x2c,0x20,0x5f,0x35,0x30, + 0x36,0x20,0x2a,0x20,0x64,0x65,0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x29,0x29,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x2d,0x73,0x71,0x72, + 0x74,0x28,0x5f,0x35,0x34,0x32,0x2e,0x78,0x29,0x29,0x20,0x2a,0x20,0x73,0x69,0x67, + 0x6e,0x28,0x5f,0x35,0x34,0x32,0x2e,0x79,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74, + 0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74, + 0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79, + 0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x73,0x64,0x66,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x28,0x74,0x68,0x72,0x65, + 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20, + 0x64,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26, + 0x20,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x62,0x73,0x28,0x64,0x29,0x20,0x2d, + 0x20,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74, + 0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74, + 0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79, + 0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74, + 0x34,0x20,0x73,0x64,0x66,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e, + 0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x61,0x2c,0x20,0x74,0x68, + 0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x34,0x26,0x20,0x62,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e, + 0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x64,0x2c,0x20,0x74,0x68,0x72, + 0x65,0x61,0x64,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x76,0x5f,0x73,0x74,0x72, + 0x6f,0x6b,0x65,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x26,0x20,0x76,0x5f,0x61,0x61,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20, + 0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x76,0x5f, + 0x66,0x69,0x6c,0x6c,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x64,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x33,0x30,0x33,0x20,0x3d,0x20,0x6d, + 0x69,0x78,0x28,0x62,0x2c,0x20,0x61,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28, + 0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x2c,0x20, + 0x76,0x5f,0x61,0x61,0x2c,0x20,0x73,0x64,0x66,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65, + 0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65, + 0x29,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, + 0x20,0x5f,0x33,0x33,0x35,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x66, + 0x6c,0x6f,0x61,0x74,0x28,0x76,0x5f,0x61,0x61,0x20,0x3e,0x20,0x30,0x2e,0x30,0x29, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20, + 0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x5f,0x33,0x30,0x33,0x2c,0x20,0x5f,0x33, + 0x30,0x33,0x2c,0x20,0x5f,0x33,0x33,0x35,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x73, + 0x65,0x6c,0x65,0x63,0x74,0x28,0x61,0x2c,0x20,0x62,0x2c,0x20,0x62,0x6f,0x6f,0x6c, + 0x34,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x64,0x2c, + 0x20,0x2d,0x31,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x20,0x3c,0x3d,0x20,0x30, + 0x2e,0x30,0x29,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x62,0x2c,0x20,0x61,0x2c,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65, + 0x70,0x28,0x30,0x2e,0x30,0x2c,0x20,0x76,0x5f,0x61,0x61,0x2c,0x20,0x64,0x29,0x29, + 0x29,0x2c,0x20,0x5f,0x33,0x33,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, + 0x28,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72, + 0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x7d,0x0a, + 0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f, + 0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c, + 0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c, + 0x6f,0x61,0x74,0x32,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x66,0x72,0x6f,0x6d, + 0x5f,0x68,0x65,0x69,0x67,0x68,0x74,0x6d,0x61,0x70,0x28,0x74,0x65,0x78,0x74,0x75, + 0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x74,0x65,0x78,0x2c, + 0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c, + 0x72,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x75,0x76,0x29,0x0a,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x35,0x37,0x34,0x20,0x3d,0x20, + 0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x74,0x65,0x78,0x53,0x6d, + 0x70,0x6c,0x72,0x2c,0x20,0x75,0x76,0x2c,0x20,0x69,0x6e,0x74,0x32,0x28,0x30,0x2c, + 0x20,0x2d,0x31,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x5f,0x35,0x37,0x35,0x20,0x3d,0x20,0x5f,0x35,0x37,0x34,0x2e,0x78,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x28,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x74,0x65,0x78, + 0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x75,0x76,0x2c,0x20,0x69,0x6e,0x74,0x32,0x28, + 0x2d,0x31,0x2c,0x20,0x31,0x29,0x29,0x2e,0x78,0x20,0x2d,0x20,0x5f,0x35,0x37,0x35, + 0x2c,0x20,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x74,0x65,0x78, + 0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x75,0x76,0x2c,0x20,0x69,0x6e,0x74,0x32,0x28, + 0x31,0x29,0x29,0x2e,0x78,0x20,0x2d,0x20,0x5f,0x35,0x37,0x35,0x29,0x3b,0x0a,0x7d, + 0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20, + 0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61, + 0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66, + 0x6c,0x6f,0x61,0x74,0x34,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x74,0x6f,0x5f, + 0x63,0x6f,0x6c,0x6f,0x72,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e, + 0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x6e,0x29,0x0a,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x34,0x28,0x28,0x6e,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x32,0x28,0x30,0x2e,0x35,0x29,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20, + 0x31,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20, + 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75, + 0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c, + 0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x73,0x68,0x61, + 0x64,0x65,0x72,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x20, + 0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x26,0x20,0x70,0x6f,0x73,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64, + 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x75, + 0x76,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x2c,0x20, + 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e, + 0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x2c,0x20,0x73,0x61,0x6d,0x70, + 0x6c,0x65,0x72,0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70, + 0x6c,0x72,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c, + 0x6f,0x61,0x74,0x3e,0x20,0x77,0x61,0x76,0x65,0x6c,0x65,0x74,0x73,0x5f,0x74,0x65, + 0x78,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x77,0x61,0x76,0x65,0x6c, + 0x65,0x74,0x73,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x74,0x65, + 0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x73, + 0x63,0x65,0x6e,0x65,0x5f,0x74,0x65,0x78,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65, + 0x72,0x20,0x73,0x63,0x65,0x6e,0x65,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72, + 0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x73,0x68,0x61,0x64,0x65, + 0x72,0x5f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x26,0x20,0x5f,0x36,0x35,0x31, + 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x75,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x36,0x30,0x34,0x20,0x3d,0x20,0x6e,0x6f,0x72, + 0x6d,0x61,0x6c,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x68,0x65,0x69,0x67,0x68,0x74,0x6d, + 0x61,0x70,0x28,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x2c,0x20,0x6e,0x6f, + 0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x75,0x76,0x20,0x2b,0x20, + 0x28,0x28,0x5f,0x36,0x30,0x34,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28, + 0x30,0x2e,0x30,0x30,0x36,0x32,0x35,0x30,0x30,0x30,0x30,0x30,0x39,0x33,0x31,0x33, + 0x32,0x32,0x35,0x37,0x34,0x36,0x31,0x35,0x34,0x37,0x38,0x35,0x31,0x35,0x36,0x32, + 0x35,0x2c,0x20,0x30,0x2e,0x30,0x30,0x38,0x33,0x33,0x33,0x33,0x33,0x33,0x37,0x36, + 0x37,0x39,0x35,0x30,0x35,0x33,0x34,0x38,0x32,0x30,0x35,0x35,0x36,0x36,0x34,0x30, + 0x36,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x31,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x36,0x31,0x35,0x20,0x3d, + 0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x68,0x65,0x69, + 0x67,0x68,0x74,0x6d,0x61,0x70,0x28,0x77,0x61,0x76,0x65,0x6c,0x65,0x74,0x73,0x5f, + 0x74,0x65,0x78,0x2c,0x20,0x77,0x61,0x76,0x65,0x6c,0x65,0x74,0x73,0x5f,0x74,0x65, + 0x78,0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x36,0x30,0x34,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20, + 0x3d,0x20,0x5f,0x36,0x31,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x20,0x5f,0x36,0x33,0x31,0x20,0x3d,0x20,0x5f,0x36,0x30,0x34,0x20,0x2b, + 0x20,0x5f,0x36,0x31,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x34,0x20,0x63,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x73,0x63,0x65,0x6e,0x65,0x5f, + 0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x73,0x63,0x65,0x6e,0x65, + 0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x28,0x75,0x76,0x20,0x2b, + 0x20,0x28,0x28,0x5f,0x36,0x33,0x31,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x28,0x30,0x2e,0x30,0x30,0x36,0x32,0x35,0x30,0x30,0x30,0x30,0x30,0x39,0x33,0x31, + 0x33,0x32,0x32,0x35,0x37,0x34,0x36,0x31,0x35,0x34,0x37,0x38,0x35,0x31,0x35,0x36, + 0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x30,0x38,0x33,0x33,0x33,0x33,0x33,0x33,0x37, + 0x36,0x37,0x39,0x35,0x30,0x35,0x33,0x34,0x38,0x32,0x30,0x35,0x35,0x36,0x36,0x34, + 0x30,0x36,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x31,0x30,0x2e,0x30,0x29,0x29,0x29, + 0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x31,0x2e,0x30,0x29,0x2c,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x34,0x28,0x28,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x5f,0x36, + 0x33,0x31,0x29,0x20,0x3e,0x20,0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30, + 0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33,0x31, + 0x32,0x35,0x29,0x20,0x3f,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30, + 0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35, + 0x36,0x32,0x35,0x20,0x3a,0x20,0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x36,0x35,0x36,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x35,0x31,0x2e,0x73,0x68,0x6f,0x77,0x5f, + 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x73,0x20,0x3e,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x36, + 0x30,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x36,0x31, + 0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x35,0x36,0x20, + 0x3d,0x20,0x6d,0x69,0x78,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x74,0x6f,0x5f, + 0x63,0x6f,0x6c,0x6f,0x72,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x2c,0x20, + 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x74,0x6f,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x28, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, + 0x28,0x30,0x2e,0x32,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x35,0x36,0x20,0x3d,0x20,0x63,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x36, + 0x35,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f, + 0x36,0x37,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x35, + 0x31,0x2e,0x73,0x68,0x6f,0x77,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x20,0x3e,0x20,0x30, + 0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x5f,0x36,0x37,0x33,0x20,0x3d,0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74, + 0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x6e,0x6f,0x69,0x73,0x65,0x5f, + 0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x75,0x76,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x37,0x33, + 0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x63,0x20,0x3d,0x20,0x5f,0x36,0x37,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, + 0x74,0x75,0x72,0x6e,0x20,0x5f,0x36,0x37,0x33,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x72, + 0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74, + 0x20,0x6d,0x61,0x69,0x6e,0x30,0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x20, + 0x69,0x6e,0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d,0x2c, + 0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x73,0x68,0x61,0x64,0x65,0x72, + 0x5f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x26,0x20,0x5f,0x36,0x35,0x31,0x20, + 0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20,0x63, + 0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d, + 0x73,0x26,0x20,0x5f,0x37,0x35,0x36,0x20,0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72, + 0x28,0x31,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64, + 0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65, + 0x78,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x30,0x29,0x5d,0x5d, + 0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61, + 0x74,0x3e,0x20,0x77,0x61,0x76,0x65,0x6c,0x65,0x74,0x73,0x5f,0x74,0x65,0x78,0x20, + 0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x31,0x29,0x5d,0x5d,0x2c,0x20, + 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e, + 0x20,0x73,0x63,0x65,0x6e,0x65,0x5f,0x74,0x65,0x78,0x20,0x5b,0x5b,0x74,0x65,0x78, + 0x74,0x75,0x72,0x65,0x28,0x32,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75, + 0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x75,0x5f,0x69,0x6d, + 0x61,0x67,0x65,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x33,0x29, + 0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x6e,0x6f,0x69,0x73, + 0x65,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x20,0x5b,0x5b,0x73,0x61,0x6d, + 0x70,0x6c,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c, + 0x65,0x72,0x20,0x77,0x61,0x76,0x65,0x6c,0x65,0x74,0x73,0x5f,0x74,0x65,0x78,0x53, + 0x6d,0x70,0x6c,0x72,0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x28,0x31, + 0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x73,0x63,0x65, + 0x6e,0x65,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x20,0x5b,0x5b,0x73,0x61, + 0x6d,0x70,0x6c,0x65,0x72,0x28,0x32,0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70, + 0x6c,0x65,0x72,0x20,0x75,0x5f,0x69,0x6d,0x61,0x67,0x65,0x53,0x6d,0x70,0x6c,0x72, + 0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x28,0x33,0x29,0x5d,0x5d,0x29, + 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74, + 0x20,0x6f,0x75,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62, + 0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x38,0x39,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f, + 0x74,0x79,0x70,0x65,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x39,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x36,0x38,0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x39,0x35,0x20,0x3d,0x20,0x69, + 0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x31, + 0x39,0x36,0x30,0x37,0x38,0x34,0x34,0x32,0x39,0x36,0x38,0x34,0x32,0x38,0x31,0x33, + 0x34,0x39,0x31,0x38,0x32,0x31,0x32,0x38,0x39,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x39,0x35, + 0x20,0x3d,0x20,0x5f,0x36,0x38,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x39,0x38,0x20,0x3d,0x20,0x69, + 0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x31, + 0x39,0x36,0x30,0x37,0x38,0x34,0x34,0x32,0x39,0x36,0x38,0x34,0x32,0x38,0x31,0x33, + 0x34,0x39,0x31,0x38,0x32,0x31,0x32,0x38,0x39,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x30,0x34,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x39,0x38,0x29,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x30,0x34,0x20,0x3d, + 0x20,0x69,0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30, + 0x30,0x35,0x38,0x38,0x32,0x33,0x35,0x33,0x30,0x35,0x36,0x32,0x32,0x32,0x32,0x30, + 0x30,0x33,0x39,0x33,0x36,0x37,0x36,0x37,0x35,0x37,0x38,0x31,0x32,0x35,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x30, + 0x34,0x20,0x3d,0x20,0x5f,0x36,0x39,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x30,0x37,0x20,0x3d,0x20, + 0x69,0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30, + 0x35,0x38,0x38,0x32,0x33,0x35,0x33,0x30,0x35,0x36,0x32,0x32,0x32,0x32,0x30,0x30, + 0x33,0x39,0x33,0x36,0x37,0x36,0x37,0x35,0x37,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x31,0x33,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x30,0x37,0x29,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x31,0x33,0x20,0x3d, + 0x20,0x69,0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30, + 0x30,0x39,0x38,0x30,0x33,0x39,0x32,0x31,0x39,0x31,0x35,0x35,0x39,0x30,0x37,0x36, + 0x33,0x30,0x39,0x32,0x30,0x34,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x31,0x33, + 0x20,0x3d,0x20,0x5f,0x37,0x30,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x31,0x36,0x20,0x3d,0x20,0x69, + 0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x39, 0x38,0x30,0x33,0x39,0x32,0x31,0x39,0x31,0x35,0x35,0x39,0x30,0x37,0x36,0x33,0x30, 0x39,0x32,0x30,0x34,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x32,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x37,0x31,0x36,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x32,0x32,0x20,0x3d,0x20,0x69, + 0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x31,0x33, + 0x37,0x32,0x35,0x34,0x39,0x30,0x33,0x30,0x39,0x32,0x39,0x38,0x30,0x33,0x38,0x34, + 0x38,0x32,0x36,0x36,0x36,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x34,0x32,0x20,0x3d, - 0x20,0x5f,0x36,0x33,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x34,0x35,0x20,0x3d,0x20,0x69,0x6e,0x2e, - 0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x39,0x38,0x30, - 0x33,0x39,0x32,0x31,0x39,0x31,0x35,0x35,0x39,0x30,0x37,0x36,0x33,0x30,0x39,0x32, - 0x30,0x34,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62, - 0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x35,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, - 0x20,0x28,0x5f,0x36,0x34,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x35,0x31,0x20,0x3d,0x20,0x69,0x6e,0x2e, - 0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x31,0x33,0x37,0x32, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x32,0x32,0x20,0x3d, + 0x20,0x5f,0x37,0x31,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x32,0x35,0x20,0x3d,0x20,0x69,0x6e,0x2e, + 0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x31,0x33,0x37,0x32, 0x35,0x34,0x39,0x30,0x33,0x30,0x39,0x32,0x39,0x38,0x30,0x33,0x38,0x34,0x38,0x32, - 0x36,0x36,0x36,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x35,0x31,0x20,0x3d,0x20,0x5f, - 0x36,0x34,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62, - 0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x35,0x34,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f, - 0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x31,0x33,0x37,0x32,0x35,0x34, - 0x39,0x30,0x33,0x30,0x39,0x32,0x39,0x38,0x30,0x33,0x38,0x34,0x38,0x32,0x36,0x36, - 0x36,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f, - 0x6c,0x20,0x5f,0x36,0x36,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x5f,0x36,0x35,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x5f,0x36,0x36,0x30,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f, - 0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x31,0x37,0x36,0x34,0x37,0x30, - 0x35,0x39,0x36,0x33,0x34,0x33,0x32,0x37,0x38,0x38,0x38,0x34,0x38,0x38,0x37,0x36, - 0x39,0x35,0x33,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x36,0x30,0x20,0x3d,0x20,0x5f,0x36,0x35,0x34, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, - 0x20,0x5f,0x36,0x36,0x33,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70, - 0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x31,0x37,0x36,0x34,0x37,0x30,0x35,0x39,0x36, - 0x33,0x34,0x33,0x32,0x37,0x38,0x38,0x38,0x34,0x38,0x38,0x37,0x36,0x39,0x35,0x33, - 0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36, - 0x36,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x36,0x33, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x5f,0x36,0x36,0x39,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65, - 0x20,0x3c,0x20,0x30,0x2e,0x30,0x32,0x31,0x35,0x36,0x38,0x36,0x32,0x38,0x30,0x32, - 0x38,0x30,0x33,0x35,0x31,0x36,0x33,0x38,0x37,0x39,0x33,0x39,0x34,0x35,0x33,0x31, - 0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c, - 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x36,0x36,0x39,0x20,0x3d,0x20,0x5f,0x36,0x36,0x33,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x63, - 0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x36,0x37,0x36,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x5f,0x36,0x32,0x34,0x20, - 0x26,0x26,0x20,0x5f,0x36,0x33,0x33,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x75,0x76,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x5f,0x32,0x38,0x32,0x2e,0x75,0x5f, - 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x75,0x5f,0x69,0x6d,0x61,0x67,0x65,0x2e,0x73, - 0x61,0x6d,0x70,0x6c,0x65,0x28,0x75,0x5f,0x69,0x6d,0x61,0x67,0x65,0x53,0x6d,0x70, - 0x6c,0x72,0x2c,0x20,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x5f,0x75,0x76,0x28,0x70,0x61, - 0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x37,0x36,0x20,0x3d,0x20,0x64, - 0x65,0x5f,0x67,0x61,0x6d,0x6d,0x61,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, - 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, - 0x36,0x37,0x36,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x36,0x37,0x36,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x36,0x39,0x37,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x32,0x34,0x29,0x0a,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x6f,0x6c,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61, - 0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x39, - 0x37,0x20,0x3d,0x20,0x67,0x61,0x6d,0x6d,0x61,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c, + 0x36,0x36,0x36,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62, + 0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x33,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x5f,0x37,0x32,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x33,0x31,0x20,0x3d,0x20,0x69,0x6e,0x2e, + 0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x31,0x37,0x36,0x34, + 0x37,0x30,0x35,0x39,0x36,0x33,0x34,0x33,0x32,0x37,0x38,0x38,0x38,0x34,0x38,0x38, + 0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x33,0x31,0x20,0x3d,0x20,0x5f,0x37, + 0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f, + 0x6f,0x6c,0x20,0x5f,0x37,0x33,0x34,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x74, + 0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x31,0x37,0x36,0x34,0x37,0x30,0x35, + 0x39,0x36,0x33,0x34,0x33,0x32,0x37,0x38,0x38,0x38,0x34,0x38,0x38,0x37,0x36,0x39, + 0x35,0x33,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20, + 0x5f,0x37,0x34,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37, + 0x33,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x5f,0x37,0x34,0x30,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x74,0x79, + 0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x32,0x31,0x35,0x36,0x38,0x36,0x32,0x38, + 0x30,0x32,0x38,0x30,0x33,0x35,0x31,0x36,0x33,0x38,0x37,0x39,0x33,0x39,0x34,0x35, + 0x33,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x5f,0x37,0x34,0x30,0x20,0x3d,0x20,0x5f,0x37,0x33,0x34,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, + 0x20,0x63,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x30,0x2e,0x30,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x37,0x34, + 0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x5f,0x36,0x39, + 0x35,0x20,0x26,0x26,0x20,0x5f,0x37,0x30,0x34,0x29,0x29,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x75,0x76, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x5f,0x37,0x35,0x36,0x2e, + 0x75,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x75,0x5f,0x69,0x6d,0x61,0x67,0x65, + 0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x75,0x5f,0x69,0x6d,0x61,0x67,0x65,0x53, + 0x6d,0x70,0x6c,0x72,0x2c,0x20,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x5f,0x75,0x76,0x28, + 0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x34,0x37,0x20,0x3d, + 0x20,0x64,0x65,0x5f,0x67,0x61,0x6d,0x6d,0x61,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c, 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x36,0x39,0x37,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x36,0x39,0x37,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x37,0x31,0x33,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x33,0x33,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x31,0x33, - 0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x6f,0x6c,0x20,0x2a,0x20,0x63,0x2e, - 0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, - 0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x5f,0x37,0x31,0x33,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x28,0x5f, - 0x37,0x31,0x33,0x2c,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x6f,0x6c,0x2c,0x20,0x62, - 0x6f,0x6f,0x6c,0x34,0x28,0x5f,0x36,0x36,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x34,0x32,0x29,0x0a,0x20,0x20, + 0x20,0x5f,0x37,0x34,0x37,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x37,0x34,0x37,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x37,0x37,0x31,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x39,0x35,0x29,0x0a,0x20,0x20, 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x69,0x6e,0x2e, - 0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20, - 0x69,0x6e,0x2e,0x76,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d, - 0x20,0x69,0x6e,0x2e,0x76,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20, - 0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37,0x34,0x34,0x20,0x3d,0x20,0x64, - 0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x62,0x6f,0x78,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d,0x20,0x5f,0x37,0x34, - 0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, - 0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x69,0x66,0x20,0x28,0x5f,0x36,0x35,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20, - 0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x61, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20, - 0x69,0x6e,0x2e,0x76,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37,0x35,0x35,0x20,0x3d, - 0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x73,0x65,0x67,0x6d,0x65,0x6e, - 0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d, - 0x20,0x5f,0x37,0x35,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x63,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x6f, + 0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x6f,0x76,0x65,0x72, + 0x6c,0x61,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, + 0x37,0x37,0x31,0x20,0x3d,0x20,0x67,0x61,0x6d,0x6d,0x61,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x5f,0x37,0x37,0x31,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x37,0x37,0x31,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x37,0x38,0x37, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x30,0x34,0x29,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37, + 0x38,0x37,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x6f,0x6c,0x20,0x2a,0x20, + 0x63,0x2e,0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, + 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x5f,0x37,0x38,0x37,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x73,0x65,0x6c,0x65,0x63,0x74, + 0x28,0x5f,0x37,0x38,0x37,0x2c,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x6f,0x6c,0x2c, + 0x20,0x62,0x6f,0x6f,0x6c,0x34,0x28,0x5f,0x37,0x33,0x31,0x29,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x20,0x3d,0x20,0x30,0x2e,0x30, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x31,0x33,0x29,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x69, + 0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20, + 0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38, + 0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x33,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x69,0x6e,0x2e, - 0x76,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35, - 0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a, - 0x3a,0x6d,0x69,0x6e,0x28,0x5f,0x37,0x35,0x35,0x2c,0x20,0x64,0x69,0x73,0x74,0x61, - 0x6e,0x63,0x65,0x5f,0x73,0x65,0x67,0x6d,0x65,0x6e,0x74,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c, - 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x36, - 0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36, - 0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x69, - 0x6e,0x2e,0x76,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x62,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39, - 0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d,0x20,0x64, - 0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65, - 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x39,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x38,0x31,0x38,0x20,0x3d, + 0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x62,0x6f,0x78,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d,0x20,0x5f, + 0x38,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, + 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x32,0x32,0x29,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x30,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76, + 0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20, + 0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x38,0x32,0x39, + 0x20,0x3d,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x73,0x65,0x67,0x6d, + 0x65,0x6e,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x2c,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64, + 0x20,0x3d,0x20,0x5f,0x38,0x32,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x69, + 0x6e,0x2e,0x76,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x35,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d,0x20,0x66,0x61,0x73, + 0x74,0x3a,0x3a,0x6d,0x69,0x6e,0x28,0x5f,0x38,0x32,0x39,0x2c,0x20,0x64,0x69,0x73, + 0x74,0x61,0x6e,0x63,0x65,0x5f,0x73,0x65,0x67,0x6d,0x65,0x6e,0x74,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x34,0x20,0x5f,0x37,0x38,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, - 0x28,0x28,0x28,0x21,0x5f,0x36,0x32,0x34,0x29,0x20,0x26,0x26,0x20,0x28,0x21,0x5f, - 0x36,0x33,0x33,0x29,0x29,0x20,0x26,0x26,0x20,0x28,0x21,0x5f,0x36,0x36,0x30,0x29, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20, - 0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20,0x69, - 0x6e,0x2e,0x76,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x20, - 0x3d,0x20,0x64,0x20,0x2d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x72,0x61,0x64,0x69,0x75, - 0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x34,0x20,0x5f,0x37,0x39,0x38,0x20,0x3d,0x20,0x73,0x64,0x66,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x2c,0x20,0x69,0x6e,0x2e,0x76,0x5f, - 0x73,0x74,0x72,0x6f,0x6b,0x65,0x2c,0x20,0x5f,0x32,0x38,0x32,0x2c,0x20,0x69,0x6e, - 0x2e,0x76,0x5f,0x61,0x61,0x2c,0x20,0x6f,0x75,0x74,0x2e,0x72,0x65,0x73,0x75,0x6c, - 0x74,0x2c,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x38,0x36,0x20,0x3d,0x20,0x5f,0x37, - 0x39,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c, - 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x37,0x38,0x36,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x38,0x30,0x35, - 0x20,0x3d,0x20,0x5f,0x37,0x38,0x36,0x20,0x2a,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x61, - 0x6c,0x70,0x68,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x38, - 0x30,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x5f,0x38,0x30,0x35,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x34,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x35,0x20,0x3d,0x20,0x28,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x48, - 0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x2e,0x30,0x29,0x29,0x20, - 0x2a,0x20,0x30,0x2e,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x20,0x3d,0x20,0x69,0x6e,0x2e, - 0x76,0x5f,0x75,0x73,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x34,0x20,0x5f,0x38,0x32,0x31,0x20,0x3d,0x20,0x73,0x68,0x61,0x64,0x65,0x72, - 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x2c,0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74, - 0x65,0x78,0x2c,0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70, - 0x6c,0x72,0x2c,0x20,0x5f,0x35,0x37,0x32,0x2c,0x20,0x77,0x61,0x74,0x65,0x72,0x5f, - 0x74,0x65,0x78,0x2c,0x20,0x77,0x61,0x74,0x65,0x72,0x5f,0x74,0x65,0x78,0x53,0x6d, - 0x70,0x6c,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x38, - 0x32,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x38,0x32,0x31, - 0x2e,0x77,0x20,0x3d,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x61,0x72,0x64, - 0x5f,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x72,0x65,0x73,0x75,0x6c, - 0x74,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, - 0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, + 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, + 0x37,0x34,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x36,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d, + 0x20,0x69,0x6e,0x2e,0x76,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f, + 0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x39,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d, + 0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x74,0x72,0x69,0x61,0x6e,0x67, + 0x6c,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x34,0x20,0x5f,0x38,0x36,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x66,0x20,0x28,0x28,0x28,0x21,0x5f,0x36,0x39,0x35,0x29,0x20,0x26,0x26,0x20,0x28, + 0x21,0x5f,0x37,0x30,0x34,0x29,0x29,0x20,0x26,0x26,0x20,0x28,0x21,0x5f,0x37,0x33, + 0x31,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x30,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d, + 0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x32,0x20,0x3d,0x20,0x64,0x20,0x2d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x72,0x61,0x64, + 0x69,0x75,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x34,0x20,0x5f,0x38,0x37,0x32,0x20,0x3d,0x20,0x73,0x64,0x66,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x2c,0x20,0x69,0x6e,0x2e, + 0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2c,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x61, + 0x61,0x2c,0x20,0x6f,0x75,0x74,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69, + 0x6e,0x2e,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x5f,0x38,0x36,0x30,0x20,0x3d,0x20,0x5f,0x38,0x37,0x32,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x38,0x36, + 0x30,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x38,0x37,0x39,0x20,0x3d,0x20,0x5f, + 0x38,0x36,0x30,0x20,0x2a,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x38,0x37,0x39,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x32,0x33,0x20,0x3d,0x20,0x5f,0x38,0x37,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20, + 0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x20, + 0x3d,0x20,0x28,0x28,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x48,0x20,0x2b,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x30, + 0x2e,0x35,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x2e,0x30, + 0x2c,0x20,0x2d,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x20,0x3d,0x20,0x69, + 0x6e,0x2e,0x76,0x5f,0x75,0x73,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x34,0x20,0x5f,0x38,0x39,0x37,0x20,0x3d,0x20,0x73,0x68,0x61,0x64, + 0x65,0x72,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x32,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x2c,0x20,0x6e,0x6f,0x69,0x73,0x65, + 0x5f,0x74,0x65,0x78,0x2c,0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x53, + 0x6d,0x70,0x6c,0x72,0x2c,0x20,0x77,0x61,0x76,0x65,0x6c,0x65,0x74,0x73,0x5f,0x74, + 0x65,0x78,0x2c,0x20,0x77,0x61,0x76,0x65,0x6c,0x65,0x74,0x73,0x5f,0x74,0x65,0x78, + 0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x73,0x63,0x65,0x6e,0x65,0x5f,0x74,0x65,0x78, + 0x2c,0x20,0x73,0x63,0x65,0x6e,0x65,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72, + 0x2c,0x20,0x5f,0x36,0x35,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d, + 0x20,0x5f,0x38,0x39,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, + 0x38,0x39,0x37,0x2e,0x77,0x20,0x3d,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63, + 0x61,0x72,0x64,0x5f,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x72,0x65, + 0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, + 0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, }; /* #include @@ -6190,10 +6650,10 @@ static const char shallow_water_fs_source_metal_ios[11243] = { float4 v_col [[user(locn5)]]; float v_radius [[user(locn6)]]; float v_stroke [[user(locn7)]]; - float v_type [[user(locn8)]]; - float v_alpha [[user(locn9)]]; - float v_fill [[user(locn10)]]; - float v_aa [[user(locn11)]]; + float v_aa [[user(locn8)]]; + float v_type [[user(locn9)]]; + float v_alpha [[user(locn10)]]; + float v_fill [[user(locn11)]]; float2 v_posH [[user(locn12)]]; float4 v_user [[user(locn13)]]; float4 gl_Position [[position]]; @@ -6210,8 +6670,9 @@ static const char shallow_water_fs_source_metal_ios[11243] = { float4 in_col [[attribute(6)]]; float in_radius [[attribute(7)]]; float in_stroke [[attribute(8)]]; - float4 in_params [[attribute(9)]]; - float4 in_user_params [[attribute(10)]]; + float in_aa [[attribute(9)]]; + float4 in_params [[attribute(10)]]; + float4 in_user_params [[attribute(11)]]; }; vertex main0_out main0(main0_in in [[stage_in]]) @@ -6225,10 +6686,10 @@ static const char shallow_water_fs_source_metal_ios[11243] = { out.v_col = in.in_col; out.v_radius = in.in_radius; out.v_stroke = in.in_stroke; + out.v_aa = in.in_aa; out.v_type = in.in_params.x; out.v_alpha = in.in_params.y; out.v_fill = in.in_params.z; - out.v_aa = in.in_params.w; out.gl_Position = float4(in.in_posH, 0.0, 1.0); out.v_posH = in.in_posH; out.v_user = in.in_user_params; @@ -6236,7 +6697,7 @@ static const char shallow_water_fs_source_metal_ios[11243] = { } */ -static const char shallow_water_vs_source_metal_sim[1595] = { +static const char shallow_water_vs_source_metal_sim[1624] = { 0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x6d,0x65,0x74,0x61,0x6c,0x5f, 0x73,0x74,0x64,0x6c,0x69,0x62,0x3e,0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65, 0x20,0x3c,0x73,0x69,0x6d,0x64,0x2f,0x73,0x69,0x6d,0x64,0x2e,0x68,0x3e,0x0a,0x0a, @@ -6260,13 +6721,13 @@ static const char shallow_water_vs_source_metal_sim[1595] = { 0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f, 0x73,0x74,0x72,0x6f,0x6b,0x65,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f, 0x63,0x6e,0x37,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x76,0x5f,0x61,0x61,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f, + 0x63,0x6e,0x38,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28, - 0x6c,0x6f,0x63,0x6e,0x38,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6c,0x6f,0x63,0x6e,0x39,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x20,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x20,0x5b,0x5b,0x75,0x73, - 0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x39,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x20,0x5b,0x5b, - 0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x30,0x29,0x5d,0x5d,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x61,0x61,0x20,0x5b, + 0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x20,0x5b, 0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x31,0x29,0x5d,0x5d,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x70,0x6f, 0x73,0x48,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x32, @@ -6296,47 +6757,49 @@ static const char shallow_water_vs_source_metal_sim[1595] = { 0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x37,0x29,0x5d,0x5d,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x69,0x6e,0x5f,0x73,0x74,0x72, 0x6f,0x6b,0x65,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28, - 0x38,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, - 0x20,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x5b,0x5b,0x61,0x74,0x74, - 0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x39,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x69,0x6e,0x5f,0x75,0x73,0x65,0x72,0x5f, - 0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72,0x69,0x62,0x75, - 0x74,0x65,0x28,0x31,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x76,0x65, - 0x72,0x74,0x65,0x78,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6d, - 0x61,0x69,0x6e,0x30,0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x20,0x69,0x6e, - 0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d,0x29,0x0a,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f, - 0x75,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74, - 0x2e,0x76,0x5f,0x70,0x6f,0x73,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x70, - 0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x61,0x20, - 0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f, - 0x75,0x74,0x2e,0x76,0x5f,0x62,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x62, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x63,0x20,0x3d,0x20, - 0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74, - 0x2e,0x76,0x5f,0x75,0x76,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x75,0x76, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x63,0x6f,0x6c,0x20, - 0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x20,0x3d,0x20, - 0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x20,0x3d, - 0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3d,0x20, - 0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x78,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x20, - 0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x79, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x66,0x69,0x6c,0x6c, - 0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e, - 0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x61,0x61,0x20, - 0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x77, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x67,0x6c,0x5f,0x50,0x6f,0x73, - 0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x69, - 0x6e,0x2e,0x69,0x6e,0x5f,0x70,0x6f,0x73,0x48,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20, - 0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f, - 0x70,0x6f,0x73,0x48,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x70,0x6f,0x73, - 0x48,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x75,0x73,0x65, - 0x72,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x75,0x73,0x65,0x72,0x5f,0x70, - 0x61,0x72,0x61,0x6d,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, - 0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, + 0x38,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x69,0x6e,0x5f,0x61,0x61,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74, + 0x65,0x28,0x39,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x34,0x20,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x5b,0x5b,0x61, + 0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x31,0x30,0x29,0x5d,0x5d,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x69,0x6e,0x5f,0x75,0x73, + 0x65,0x72,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x5b,0x5b,0x61,0x74,0x74,0x72, + 0x69,0x62,0x75,0x74,0x65,0x28,0x31,0x31,0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a, + 0x0a,0x76,0x65,0x72,0x74,0x65,0x78,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75, + 0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e, + 0x20,0x69,0x6e,0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d, + 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75, + 0x74,0x20,0x6f,0x75,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x6f,0x75,0x74,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69, + 0x6e,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76, + 0x5f,0x61,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x61,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x62,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69, + 0x6e,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x63, + 0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x6f,0x75,0x74,0x2e,0x76,0x5f,0x75,0x76,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e, + 0x5f,0x75,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x63, + 0x6f,0x6c,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x63,0x6f,0x6c,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x72,0x61,0x64,0x69,0x75,0x73, + 0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b, + 0x65,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x61,0x61,0x20,0x3d, + 0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x61,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f, + 0x75,0x74,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69, + 0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x6f,0x75,0x74,0x2e,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x20,0x3d,0x20,0x69,0x6e, + 0x2e,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x79,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x20,0x3d,0x20,0x69, + 0x6e,0x2e,0x69,0x6e,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x7a,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x67,0x6c,0x5f,0x50,0x6f,0x73,0x69,0x74,0x69, + 0x6f,0x6e,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x69,0x6e,0x2e,0x69, + 0x6e,0x5f,0x70,0x6f,0x73,0x48,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x70,0x6f,0x73, + 0x48,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x70,0x6f,0x73,0x48,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x76,0x5f,0x75,0x73,0x65,0x72,0x20,0x3d, + 0x20,0x69,0x6e,0x2e,0x69,0x6e,0x5f,0x75,0x73,0x65,0x72,0x5f,0x70,0x61,0x72,0x61, + 0x6d,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f, + 0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, }; /* #pragma clang diagnostic ignored "-Wmissing-prototypes" @@ -6346,18 +6809,15 @@ static const char shallow_water_vs_source_metal_sim[1595] = { using namespace metal; - struct fs_params + struct shader_uniforms { - float2 u_texture_size; - float u_aaf; - float u_aa_scale; + float show_normals; + float show_noise; }; - struct shader_uniforms + struct fs_params { - float amplitude; - float time; - float show_noise; + float2 u_texture_size; }; struct main0_out @@ -6375,10 +6835,10 @@ static const char shallow_water_vs_source_metal_sim[1595] = { float4 v_col [[user(locn5)]]; float v_radius [[user(locn6)]]; float v_stroke [[user(locn7)]]; - float v_type [[user(locn8)]]; - float v_alpha [[user(locn9)]]; - float v_fill [[user(locn10)]]; - float v_aa [[user(locn11)]]; + float v_aa [[user(locn8)]]; + float v_type [[user(locn9)]]; + float v_alpha [[user(locn10)]]; + float v_fill [[user(locn11)]]; float2 v_posH [[user(locn12)]]; float4 v_user [[user(locn13)]]; }; @@ -6386,8 +6846,8 @@ static const char shallow_water_vs_source_metal_sim[1595] = { static inline __attribute__((always_inline)) float2 smooth_uv(thread const float2& uv, thread const float2& texture_size) { - float2 _204 = floor(fma(uv, texture_size, float2(0.5))); - return (_204 + fast::clamp(fma(uv, texture_size, -_204) / fwidth(uv * texture_size), float2(-0.5), float2(0.5))) / texture_size; + float2 _216 = floor(fma(uv, texture_size, float2(0.5))); + return (_216 + fast::clamp(fma(uv, texture_size, -_216) / fwidth(uv * texture_size), float2(-0.5), float2(0.5))) / texture_size; } static inline __attribute__((always_inline)) @@ -6399,16 +6859,16 @@ static const char shallow_water_vs_source_metal_sim[1595] = { static inline __attribute__((always_inline)) float overlay(thread const float& base, thread const float& blend) { - float _104; + float _116; if (base <= 0.5) { - _104 = (2.0 * base) * blend; + _116 = (2.0 * base) * blend; } else { - _104 = fma((1.0 - base) * (-2.0), 1.0 - blend, 1.0); + _116 = fma((1.0 - base) * (-2.0), 1.0 - blend, 1.0); } - return _104; + return _116; } static inline __attribute__((always_inline)) @@ -6446,8 +6906,8 @@ static const char shallow_water_vs_source_metal_sim[1595] = { static inline __attribute__((always_inline)) float distance_aabb(thread const float2& p, thread const float2& he) { - float2 _357 = abs(p) - he; - return length(fast::max(_357, float2(0.0))) + fast::min(fast::max(_357.x, _357.y), 0.0); + float2 _360 = abs(p) - he; + return length(fast::max(_360, float2(0.0))) + fast::min(fast::max(_360.x, _360.y), 0.0); } static inline __attribute__((always_inline)) @@ -6464,42 +6924,42 @@ static const char shallow_water_vs_source_metal_sim[1595] = { static inline __attribute__((always_inline)) float safe_div(thread const float& a, thread const float& b) { - float _225; + float _237; if (b == 0.0) { - _225 = 0.0; + _237 = 0.0; } else { - _225 = a / b; + _237 = a / b; } - return _225; + return _237; } static inline __attribute__((always_inline)) float safe_len(thread const float2& v) { - float _238 = dot(v, v); - float _241; - if (_238 == 0.0) + float _250 = dot(v, v); + float _253; + if (_250 == 0.0) { - _241 = 0.0; + _253 = 0.0; } else { - _241 = sqrt(_238); + _253 = sqrt(_250); } - return _241; + return _253; } static inline __attribute__((always_inline)) float distance_segment(thread const float2& p, thread const float2& a, thread const float2& b) { - float2 _402 = b - a; - float2 _406 = p - a; - float param = dot(_406, _402); - float param_1 = dot(_402, _402); - float2 param_2 = _406 - (_402 * fast::clamp(safe_div(param, param_1), 0.0, 1.0)); + float2 _405 = b - a; + float2 _409 = p - a; + float param = dot(_409, _405); + float param_1 = dot(_405, _405); + float2 param_2 = _409 - (_405 * fast::clamp(safe_div(param, param_1), 0.0, 1.0)); return safe_len(param_2); } @@ -6512,32 +6972,32 @@ static const char shallow_water_vs_source_metal_sim[1595] = { static inline __attribute__((always_inline)) float distance_triangle(thread const float2& p, thread const float2& a, thread const float2& b, thread const float2& c) { - float2 _432 = b - a; - float2 _436 = c - b; - float2 _440 = a - c; - float2 _444 = p - a; - float2 _448 = p - b; - float2 _452 = p - c; - float param = dot(_444, _432); - float param_1 = dot(_432, _432); - float2 _467 = _444 - (_432 * fast::clamp(safe_div(param, param_1), 0.0, 1.0)); - float param_2 = dot(_448, _436); - float param_3 = dot(_436, _436); - float2 _482 = _448 - (_436 * fast::clamp(safe_div(param_2, param_3), 0.0, 1.0)); - float param_4 = dot(_452, _440); - float param_5 = dot(_440, _440); - float2 _497 = _452 - (_440 * fast::clamp(safe_div(param_4, param_5), 0.0, 1.0)); - float2 param_6 = _432; - float2 param_7 = _440; - float _503 = det2(param_6, param_7); - float2 param_8 = _444; - float2 param_9 = _432; - float2 param_10 = _448; - float2 param_11 = _436; - float2 param_12 = _452; - float2 param_13 = _440; - float2 _539 = fast::min(fast::min(float2(dot(_467, _467), _503 * det2(param_8, param_9)), float2(dot(_482, _482), _503 * det2(param_10, param_11))), float2(dot(_497, _497), _503 * det2(param_12, param_13))); - return (-sqrt(_539.x)) * sign(_539.y); + float2 _435 = b - a; + float2 _439 = c - b; + float2 _443 = a - c; + float2 _447 = p - a; + float2 _451 = p - b; + float2 _455 = p - c; + float param = dot(_447, _435); + float param_1 = dot(_435, _435); + float2 _470 = _447 - (_435 * fast::clamp(safe_div(param, param_1), 0.0, 1.0)); + float param_2 = dot(_451, _439); + float param_3 = dot(_439, _439); + float2 _485 = _451 - (_439 * fast::clamp(safe_div(param_2, param_3), 0.0, 1.0)); + float param_4 = dot(_455, _443); + float param_5 = dot(_443, _443); + float2 _500 = _455 - (_443 * fast::clamp(safe_div(param_4, param_5), 0.0, 1.0)); + float2 param_6 = _435; + float2 param_7 = _443; + float _506 = det2(param_6, param_7); + float2 param_8 = _447; + float2 param_9 = _435; + float2 param_10 = _451; + float2 param_11 = _439; + float2 param_12 = _455; + float2 param_13 = _443; + float2 _542 = fast::min(fast::min(float2(dot(_470, _470), _506 * det2(param_8, param_9)), float2(dot(_485, _485), _506 * det2(param_10, param_11))), float2(dot(_500, _500), _506 * det2(param_12, param_13))); + return (-sqrt(_542.x)) * sign(_542.y); } static inline __attribute__((always_inline)) @@ -6547,162 +7007,192 @@ static const char shallow_water_vs_source_metal_sim[1595] = { } static inline __attribute__((always_inline)) - float4 sdf(thread const float4& a, thread const float4& b, thread const float& d, thread float& v_stroke, constant fs_params& _282, thread float& v_aa, thread float4& result, thread float& v_fill) + float4 sdf(thread const float4& a, thread const float4& b, thread const float& d, thread float& v_stroke, thread float& v_aa, thread float4& result, thread float& v_fill) { - float _291 = _282.u_aaf * _282.u_aa_scale; float param = d; - float _295 = sdf_stroke(param, v_stroke); - float4 _334 = float4(v_aa); - result = mix(mix(select(a, b, bool4(_295 <= 0.0)), mix(b, a, float4(smoothstep(0.0, _291, _295))), _334), mix(select(a, b, bool4(fast::clamp(d, -1.0, 1.0) <= 0.0)), mix(b, a, float4(smoothstep(0.0, _291, d))), _334), float4(v_fill)); + float4 _303 = mix(b, a, float4(smoothstep(0.0, v_aa, sdf_stroke(param, v_stroke)))); + float4 _335 = float4(float(v_aa > 0.0)); + result = mix(mix(_303, _303, _335), mix(select(a, b, bool4(fast::clamp(d, -1.0, 1.0) <= 0.0)), mix(b, a, float4(smoothstep(0.0, v_aa, d))), _335), float4(v_fill)); return result; } static inline __attribute__((always_inline)) - float4 shader(thread const float4& color, thread const float2& pos, thread const float2& uv, thread const float4& params, texture2d noise_tex, sampler noise_texSmplr, constant shader_uniforms& _572, texture2d water_tex, sampler water_texSmplr) + float2 normal_from_heightmap(texture2d tex, sampler texSmplr, thread const float2& uv) { - float4 _577 = noise_tex.sample(noise_texSmplr, ((float2(uv.x * 5.0, uv.y * 3.75) * 0.5) + float2(_572.time))); - float _579 = _577.x - 0.5; - float4 c = water_tex.sample(water_texSmplr, (uv + ((float2(0.001562500023283064365386962890625, 0.00208333344198763370513916015625) * _579) * _572.amplitude))); - float4 _602; - if (_572.show_noise > 0.0) + float4 _574 = tex.sample(texSmplr, uv, int2(0, -1)); + float _575 = _574.x; + return float2(tex.sample(texSmplr, uv, int2(-1, 1)).x - _575, tex.sample(texSmplr, uv, int2(1)).x - _575); + } + + static inline __attribute__((always_inline)) + float4 normal_to_color(thread const float2& n) + { + return float4((n * 0.5) + float2(0.5), 1.0, 1.0); + } + + static inline __attribute__((always_inline)) + float4 shader(thread const float4& color, thread const float2& pos, thread const float2& uv, thread const float4& params, texture2d noise_tex, sampler noise_texSmplr, texture2d wavelets_tex, sampler wavelets_texSmplr, texture2d scene_tex, sampler scene_texSmplr, constant shader_uniforms& _651) + { + float2 param = uv; + float2 _604 = normal_from_heightmap(noise_tex, noise_texSmplr, param); + float2 param_1 = uv + ((_604 * float2(0.0062500000931322574615478515625, 0.008333333767950534820556640625)) * 10.0); + float2 _615 = normal_from_heightmap(wavelets_tex, wavelets_texSmplr, param_1); + float2 param_2 = _604; + float2 param_3 = _615; + float2 _631 = _604 + _615; + float4 c = mix(scene_tex.sample(scene_texSmplr, (uv + ((_631 * float2(0.0062500000931322574615478515625, 0.008333333767950534820556640625)) * 10.0))), float4(1.0), float4((length(_631) > 0.20000000298023223876953125) ? 0.100000001490116119384765625 : 0.0)); + float4 _656; + if (_651.show_normals > 0.0) + { + float2 param_4 = _604; + float2 param_5 = _615; + _656 = mix(normal_to_color(param_4), normal_to_color(param_5), float4(0.25)); + } + else { - _602 = float4(_579) + float4(0.5); + _656 = c; + } + c = _656; + float4 _673; + if (_651.show_noise > 0.0) + { + _673 = noise_tex.sample(noise_texSmplr, uv); } else { - _602 = c; + _673 = c; } - c = _602; - return _602; + c = _673; + return _673; } - fragment main0_out main0(main0_in in [[stage_in]], constant fs_params& _282 [[buffer(0)]], constant shader_uniforms& _572 [[buffer(1)]], texture2d noise_tex [[texture(0)]], texture2d water_tex [[texture(1)]], texture2d u_image [[texture(2)]], sampler noise_texSmplr [[sampler(0)]], sampler water_texSmplr [[sampler(1)]], sampler u_imageSmplr [[sampler(2)]]) + fragment main0_out main0(main0_in in [[stage_in]], constant shader_uniforms& _651 [[buffer(0)]], constant fs_params& _756 [[buffer(1)]], texture2d noise_tex [[texture(0)]], texture2d wavelets_tex [[texture(1)]], texture2d scene_tex [[texture(2)]], texture2d u_image [[texture(3)]], sampler noise_texSmplr [[sampler(0)]], sampler wavelets_texSmplr [[sampler(1)]], sampler scene_texSmplr [[sampler(2)]], sampler u_imageSmplr [[sampler(3)]]) { main0_out out = {}; - bool _618 = in.v_type >= 0.0; - bool _624; - if (_618) + bool _689 = in.v_type >= 0.0; + bool _695; + if (_689) { - _624 = in.v_type < 0.00196078442968428134918212890625; + _695 = in.v_type < 0.00196078442968428134918212890625; } else { - _624 = _618; + _695 = _689; } - bool _627 = in.v_type > 0.00196078442968428134918212890625; - bool _633; - if (_627) + bool _698 = in.v_type > 0.00196078442968428134918212890625; + bool _704; + if (_698) { - _633 = in.v_type < 0.0058823530562222003936767578125; + _704 = in.v_type < 0.0058823530562222003936767578125; } else { - _633 = _627; + _704 = _698; } - bool _636 = in.v_type > 0.0058823530562222003936767578125; - bool _642; - if (_636) + bool _707 = in.v_type > 0.0058823530562222003936767578125; + bool _713; + if (_707) { - _642 = in.v_type < 0.009803921915590763092041015625; + _713 = in.v_type < 0.009803921915590763092041015625; } else { - _642 = _636; + _713 = _707; } - bool _645 = in.v_type > 0.009803921915590763092041015625; - bool _651; - if (_645) + bool _716 = in.v_type > 0.009803921915590763092041015625; + bool _722; + if (_716) { - _651 = in.v_type < 0.013725490309298038482666015625; + _722 = in.v_type < 0.013725490309298038482666015625; } else { - _651 = _645; + _722 = _716; } - bool _654 = in.v_type > 0.013725490309298038482666015625; - bool _660; - if (_654) + bool _725 = in.v_type > 0.013725490309298038482666015625; + bool _731; + if (_725) { - _660 = in.v_type < 0.01764705963432788848876953125; + _731 = in.v_type < 0.01764705963432788848876953125; } else { - _660 = _654; + _731 = _725; } - bool _663 = in.v_type > 0.01764705963432788848876953125; - bool _669; - if (_663) + bool _734 = in.v_type > 0.01764705963432788848876953125; + bool _740; + if (_734) { - _669 = in.v_type < 0.02156862802803516387939453125; + _740 = in.v_type < 0.02156862802803516387939453125; } else { - _669 = _663; + _740 = _734; } float4 c = float4(0.0); - float4 _676; - if (!(_624 && _633)) + float4 _747; + if (!(_695 && _704)) { float2 param = in.v_uv; - float2 param_1 = _282.u_texture_size; + float2 param_1 = _756.u_texture_size; float4 param_2 = u_image.sample(u_imageSmplr, smooth_uv(param, param_1)); - _676 = de_gamma(param_2); + _747 = de_gamma(param_2); } else { - _676 = c; + _747 = c; } - c = _676; - float4 _697; - if (_624) + c = _747; + float4 _771; + if (_695) { float4 param_3 = c; float4 param_4 = in.v_col; float4 param_5 = overlay(param_3, param_4); - _697 = gamma(param_5); + _771 = gamma(param_5); } else { - _697 = c; + _771 = c; } - c = _697; - float4 _713; - if (_633) + c = _771; + float4 _787; + if (_704) { - _713 = in.v_col * c.w; + _787 = in.v_col * c.w; } else { - _713 = c; + _787 = c; } - c = select(_713, in.v_col, bool4(_660)); + c = select(_787, in.v_col, bool4(_731)); float d = 0.0; - if (_642) + if (_713) { float2 param_6 = in.v_pos; float2 param_7 = in.v_a; float2 param_8 = in.v_b; float2 param_9 = in.v_c; - float _744 = distance_box(param_6, param_7, param_8, param_9); - d = _744; + float _818 = distance_box(param_6, param_7, param_8, param_9); + d = _818; } else { - if (_651) + if (_722) { float2 param_10 = in.v_pos; float2 param_11 = in.v_a; float2 param_12 = in.v_b; - float _755 = distance_segment(param_10, param_11, param_12); - d = _755; + float _829 = distance_segment(param_10, param_11, param_12); + d = _829; float2 param_13 = in.v_pos; float2 param_14 = in.v_b; float2 param_15 = in.v_c; - d = fast::min(_755, distance_segment(param_13, param_14, param_15)); + d = fast::min(_829, distance_segment(param_13, param_14, param_15)); } else { - if (_669) + if (_740) { float2 param_16 = in.v_pos; float2 param_17 = in.v_a; @@ -6712,28 +7202,28 @@ static const char shallow_water_vs_source_metal_sim[1595] = { } } } - float4 _786; - if (((!_624) && (!_633)) && (!_660)) + float4 _860; + if (((!_695) && (!_704)) && (!_731)) { float4 param_20 = c; float4 param_21 = in.v_col; float param_22 = d - in.v_radius; - float4 _798 = sdf(param_20, param_21, param_22, in.v_stroke, _282, in.v_aa, out.result, in.v_fill); - _786 = _798; + float4 _872 = sdf(param_20, param_21, param_22, in.v_stroke, in.v_aa, out.result, in.v_fill); + _860 = _872; } else { - _786 = c; + _860 = c; } - float4 _805 = _786 * in.v_alpha; - c = _805; - float4 param_23 = _805; + float4 _879 = _860 * in.v_alpha; + c = _879; + float4 param_23 = _879; float2 param_24 = in.v_pos; - float2 param_25 = (in.v_posH + float2(1.0)) * 0.5; + float2 param_25 = ((in.v_posH + float2(1.0)) * 0.5) * float2(1.0, -1.0); float4 param_26 = in.v_user; - float4 _821 = shader(param_23, param_24, param_25, param_26, noise_tex, noise_texSmplr, _572, water_tex, water_texSmplr); - c = _821; - if (_821.w == 0.0) + float4 _897 = shader(param_23, param_24, param_25, param_26, noise_tex, noise_texSmplr, wavelets_tex, wavelets_texSmplr, scene_tex, scene_texSmplr, _651); + c = _897; + if (_897.w == 0.0) { discard_fragment(); } @@ -6742,7 +7232,7 @@ static const char shallow_water_vs_source_metal_sim[1595] = { } */ -static const char shallow_water_fs_source_metal_sim[11243] = { +static const char shallow_water_fs_source_metal_sim[12398] = { 0x23,0x70,0x72,0x61,0x67,0x6d,0x61,0x20,0x63,0x6c,0x61,0x6e,0x67,0x20,0x64,0x69, 0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x64, 0x20,0x22,0x2d,0x57,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x2d,0x70,0x72,0x6f,0x74, @@ -6751,701 +7241,773 @@ static const char shallow_water_fs_source_metal_sim[11243] = { 0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x73,0x69,0x6d,0x64,0x2f, 0x73,0x69,0x6d,0x64,0x2e,0x68,0x3e,0x0a,0x0a,0x75,0x73,0x69,0x6e,0x67,0x20,0x6e, 0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x6d,0x65,0x74,0x61,0x6c,0x3b,0x0a, - 0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d, - 0x73,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x75, - 0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x75,0x5f,0x61,0x61,0x66,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x75,0x5f,0x61,0x61,0x5f,0x73, - 0x63,0x61,0x6c,0x65,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74, - 0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x5f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73, - 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x61,0x6d,0x70, - 0x6c,0x69,0x74,0x75,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x74,0x69,0x6d,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x73,0x68,0x6f,0x77,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x3b,0x0a,0x7d,0x3b, - 0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f, - 0x75,0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, - 0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x5b,0x5b,0x63,0x6f,0x6c,0x6f,0x72,0x28,0x30, - 0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20, - 0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x70,0x6f,0x73,0x20,0x5b,0x5b,0x75,0x73, - 0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x61,0x20,0x5b,0x5b,0x75,0x73, - 0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x62,0x20,0x5b,0x5b,0x75,0x73, - 0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x32,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x63,0x20,0x5b,0x5b,0x75,0x73, - 0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x33,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x75,0x76,0x20,0x5b,0x5b,0x75, - 0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x34,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x20,0x5b, - 0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x35,0x29,0x5d,0x5d,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x72,0x61,0x64,0x69, - 0x75,0x73,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x36,0x29, + 0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x5f,0x75, + 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x73,0x68,0x6f,0x77,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x73, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x68,0x6f,0x77, + 0x5f,0x6e,0x6f,0x69,0x73,0x65,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75, + 0x63,0x74,0x20,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x0a,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x75,0x5f,0x74,0x65,0x78,0x74, + 0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74, + 0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x0a,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x72,0x65,0x73,0x75, + 0x6c,0x74,0x20,0x5b,0x5b,0x63,0x6f,0x6c,0x6f,0x72,0x28,0x30,0x29,0x5d,0x5d,0x3b, + 0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e, + 0x30,0x5f,0x69,0x6e,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x20,0x76,0x5f,0x70,0x6f,0x73,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c, + 0x6f,0x63,0x6e,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x20,0x76,0x5f,0x61,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c, + 0x6f,0x63,0x6e,0x31,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x20,0x76,0x5f,0x62,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c, + 0x6f,0x63,0x6e,0x32,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x20,0x76,0x5f,0x63,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c, + 0x6f,0x63,0x6e,0x33,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x20,0x76,0x5f,0x75,0x76,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28, + 0x6c,0x6f,0x63,0x6e,0x34,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x34,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x20,0x5b,0x5b,0x75,0x73,0x65, + 0x72,0x28,0x6c,0x6f,0x63,0x6e,0x35,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x20,0x5b, + 0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x36,0x29,0x5d,0x5d,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x73,0x74,0x72,0x6f, + 0x6b,0x65,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x37,0x29, 0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f, - 0x73,0x74,0x72,0x6f,0x6b,0x65,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f, - 0x63,0x6e,0x37,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28, - 0x6c,0x6f,0x63,0x6e,0x38,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x20,0x5b,0x5b,0x75,0x73, - 0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x39,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x20,0x5b,0x5b, - 0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x30,0x29,0x5d,0x5d,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f,0x61,0x61,0x20,0x5b, - 0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x31,0x29,0x5d,0x5d,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x70,0x6f, - 0x73,0x48,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x32, - 0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, - 0x76,0x5f,0x75,0x73,0x65,0x72,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f, - 0x63,0x6e,0x31,0x33,0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x61, + 0x61,0x61,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x38,0x29, + 0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x5f, + 0x74,0x79,0x70,0x65,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e, + 0x39,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c, + 0x6f,0x63,0x6e,0x31,0x30,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x20,0x5b,0x5b,0x75,0x73,0x65, + 0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x31,0x29,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x76,0x5f,0x70,0x6f,0x73,0x48,0x20,0x5b, + 0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x32,0x29,0x5d,0x5d,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x76,0x5f,0x75,0x73, + 0x65,0x72,0x20,0x5b,0x5b,0x75,0x73,0x65,0x72,0x28,0x6c,0x6f,0x63,0x6e,0x31,0x33, + 0x29,0x5d,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20, + 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75, + 0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c, + 0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x73,0x6d,0x6f, + 0x6f,0x74,0x68,0x5f,0x75,0x76,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, + 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x75,0x76,0x2c,0x20, + 0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x26,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a, + 0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, + 0x5f,0x32,0x31,0x36,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x66,0x6d,0x61, + 0x28,0x75,0x76,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a, + 0x65,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e,0x35,0x29,0x29,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x5f,0x32, + 0x31,0x36,0x20,0x2b,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70, + 0x28,0x66,0x6d,0x61,0x28,0x75,0x76,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, + 0x5f,0x73,0x69,0x7a,0x65,0x2c,0x20,0x2d,0x5f,0x32,0x31,0x36,0x29,0x20,0x2f,0x20, + 0x66,0x77,0x69,0x64,0x74,0x68,0x28,0x75,0x76,0x20,0x2a,0x20,0x74,0x65,0x78,0x74, + 0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x28,0x2d,0x30,0x2e,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28, + 0x30,0x2e,0x35,0x29,0x29,0x29,0x20,0x2f,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, + 0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63, + 0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62, + 0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e, + 0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x64,0x65, + 0x5f,0x67,0x61,0x6d,0x6d,0x61,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, + 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x63,0x29,0x0a,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x34,0x28,0x70,0x6f,0x77,0x28,0x61,0x62,0x73,0x28,0x63,0x2e,0x78,0x79,0x7a, + 0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x32,0x2e,0x32,0x30,0x30,0x30, + 0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38,0x32,0x30,0x33,0x31, + 0x32,0x35,0x29,0x29,0x2c,0x20,0x63,0x2e,0x77,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73, + 0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61, + 0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61, + 0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x74,0x68,0x72,0x65,0x61,0x64, + 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x62,0x61, + 0x73,0x65,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x62,0x6c,0x65,0x6e,0x64,0x29,0x0a,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x31,0x36,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x61,0x73,0x65,0x20,0x3c,0x3d, + 0x20,0x30,0x2e,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x36,0x20,0x3d,0x20,0x28,0x32,0x2e,0x30,0x20, + 0x2a,0x20,0x62,0x61,0x73,0x65,0x29,0x20,0x2a,0x20,0x62,0x6c,0x65,0x6e,0x64,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31, + 0x31,0x36,0x20,0x3d,0x20,0x66,0x6d,0x61,0x28,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20, + 0x62,0x61,0x73,0x65,0x29,0x20,0x2a,0x20,0x28,0x2d,0x32,0x2e,0x30,0x29,0x2c,0x20, + 0x31,0x2e,0x30,0x20,0x2d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2c,0x20,0x31,0x2e,0x30, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, + 0x75,0x72,0x6e,0x20,0x5f,0x31,0x31,0x36,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61, 0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74, 0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73, - 0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x20,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x5f,0x75,0x76,0x28,0x74,0x68,0x72,0x65,0x61, - 0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20, - 0x75,0x76,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, - 0x5f,0x73,0x69,0x7a,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x20,0x5f,0x32,0x30,0x34,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x6f,0x72, - 0x28,0x66,0x6d,0x61,0x28,0x75,0x76,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, - 0x5f,0x73,0x69,0x7a,0x65,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e, - 0x35,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, - 0x20,0x28,0x5f,0x32,0x30,0x34,0x20,0x2b,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63, - 0x6c,0x61,0x6d,0x70,0x28,0x66,0x6d,0x61,0x28,0x75,0x76,0x2c,0x20,0x74,0x65,0x78, - 0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x2c,0x20,0x2d,0x5f,0x32,0x30,0x34, - 0x29,0x20,0x2f,0x20,0x66,0x77,0x69,0x64,0x74,0x68,0x28,0x75,0x76,0x20,0x2a,0x20, - 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x29,0x2c,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x28,0x2d,0x30,0x2e,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x28,0x30,0x2e,0x35,0x29,0x29,0x29,0x20,0x2f,0x20,0x74,0x65,0x78, - 0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74, + 0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20, + 0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x62,0x61, + 0x73,0x65,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x62,0x6c,0x65,0x6e,0x64,0x29,0x0a, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20, + 0x62,0x6c,0x65,0x6e,0x64,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x62,0x61,0x73, + 0x65,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2e,0x79, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x34,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x2e,0x7a,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20, + 0x3d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72, + 0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x6f,0x76,0x65, + 0x72,0x6c,0x61,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x29,0x2c,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x2c, + 0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a, + 0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f, + 0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77, + 0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f, + 0x61,0x74,0x34,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x74,0x68,0x72,0x65, + 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26, + 0x20,0x62,0x61,0x73,0x65,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, + 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x62,0x6c,0x65,0x6e, + 0x64,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x2e,0x78,0x79,0x7a, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2e,0x78,0x79,0x7a, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x34,0x28,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x62,0x61,0x73, + 0x65,0x2e,0x77,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20, + 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75, + 0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c, + 0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x67,0x61,0x6d, + 0x6d,0x61,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x63,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x70, + 0x6f,0x77,0x28,0x61,0x62,0x73,0x28,0x63,0x2e,0x78,0x79,0x7a,0x29,0x2c,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x34,0x35,0x34,0x35,0x34,0x35,0x34,0x36, + 0x38,0x30,0x39,0x31,0x39,0x36,0x34,0x37,0x32,0x31,0x36,0x37,0x39,0x36,0x38,0x37, + 0x35,0x29,0x29,0x2c,0x20,0x63,0x2e,0x77,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74, 0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74, 0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79, 0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74, - 0x34,0x20,0x64,0x65,0x5f,0x67,0x61,0x6d,0x6d,0x61,0x28,0x74,0x68,0x72,0x65,0x61, - 0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20, - 0x63,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x70,0x6f,0x77,0x28,0x61,0x62,0x73,0x28,0x63, - 0x2e,0x78,0x79,0x7a,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x32,0x2e, - 0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x36,0x38,0x33,0x37,0x31,0x35,0x38, - 0x32,0x30,0x33,0x31,0x32,0x35,0x29,0x29,0x2c,0x20,0x63,0x2e,0x77,0x29,0x3b,0x0a, - 0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65, - 0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28, - 0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x74,0x68, - 0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x26,0x20,0x62,0x61,0x73,0x65,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63, - 0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x62,0x6c,0x65,0x6e, - 0x64,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, - 0x31,0x30,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x61,0x73, - 0x65,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x30,0x34,0x20,0x3d,0x20,0x28, - 0x32,0x2e,0x30,0x20,0x2a,0x20,0x62,0x61,0x73,0x65,0x29,0x20,0x2a,0x20,0x62,0x6c, - 0x65,0x6e,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, - 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x5f,0x31,0x30,0x34,0x20,0x3d,0x20,0x66,0x6d,0x61,0x28,0x28,0x31,0x2e, - 0x30,0x20,0x2d,0x20,0x62,0x61,0x73,0x65,0x29,0x20,0x2a,0x20,0x28,0x2d,0x32,0x2e, - 0x30,0x29,0x2c,0x20,0x31,0x2e,0x30,0x20,0x2d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2c, - 0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x31,0x30,0x34,0x3b,0x0a,0x7d,0x0a, - 0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f, - 0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c, - 0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c, - 0x6f,0x61,0x74,0x33,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x74,0x68,0x72, - 0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x26,0x20,0x62,0x61,0x73,0x65,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63, - 0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x62,0x6c,0x65, - 0x6e,0x64,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x2e,0x78,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x20,0x3d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d, - 0x20,0x62,0x61,0x73,0x65,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x62,0x6c,0x65, - 0x6e,0x64,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x2e,0x7a, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x35,0x20,0x3d,0x20,0x62,0x6c,0x65,0x6e,0x64,0x2e,0x7a,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x28,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61, - 0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x33,0x29,0x2c,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x29,0x3b, - 0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e, - 0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28, - 0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29, - 0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28, - 0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x34,0x26,0x20,0x62,0x61,0x73,0x65,0x2c,0x20,0x74,0x68,0x72,0x65,0x61, - 0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20, - 0x62,0x6c,0x65,0x6e,0x64,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x62,0x61,0x73,0x65, - 0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x62,0x6c,0x65,0x6e,0x64, - 0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x28, - 0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c, - 0x20,0x62,0x61,0x73,0x65,0x2e,0x77,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61, - 0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74, - 0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73, - 0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34, - 0x20,0x67,0x61,0x6d,0x6d,0x61,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, - 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x63,0x29,0x0a,0x7b, + 0x32,0x20,0x73,0x6b,0x65,0x77,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, + 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x76,0x29,0x0a,0x7b, 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x34,0x28,0x70,0x6f,0x77,0x28,0x61,0x62,0x73,0x28,0x63,0x2e,0x78,0x79,0x7a, - 0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x34,0x35,0x34,0x35, - 0x34,0x35,0x34,0x36,0x38,0x30,0x39,0x31,0x39,0x36,0x34,0x37,0x32,0x31,0x36,0x37, - 0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x2c,0x20,0x63,0x2e,0x77,0x29,0x3b,0x0a,0x7d, + 0x74,0x32,0x28,0x2d,0x76,0x2e,0x79,0x2c,0x20,0x76,0x2e,0x78,0x29,0x3b,0x0a,0x7d, 0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20, 0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61, 0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x20,0x73,0x6b,0x65,0x77,0x28,0x74,0x68,0x72,0x65,0x61, - 0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20, - 0x76,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x2d,0x76,0x2e,0x79,0x2c,0x20,0x76,0x2e,0x78, - 0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c, - 0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f, - 0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65, - 0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63, - 0x65,0x5f,0x61,0x61,0x62,0x62,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, - 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x70,0x2c,0x20,0x74, - 0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x32,0x26,0x20,0x68,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x20,0x5f,0x33,0x35,0x37,0x20,0x3d,0x20,0x61,0x62,0x73,0x28, - 0x70,0x29,0x20,0x2d,0x20,0x68,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, - 0x75,0x72,0x6e,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x66,0x61,0x73,0x74,0x3a, - 0x3a,0x6d,0x61,0x78,0x28,0x5f,0x33,0x35,0x37,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x32,0x28,0x30,0x2e,0x30,0x29,0x29,0x29,0x20,0x2b,0x20,0x66,0x61,0x73,0x74,0x3a, - 0x3a,0x6d,0x69,0x6e,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x5f, - 0x33,0x35,0x37,0x2e,0x78,0x2c,0x20,0x5f,0x33,0x35,0x37,0x2e,0x79,0x29,0x2c,0x20, - 0x30,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20, - 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75, - 0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c, - 0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74, - 0x61,0x6e,0x63,0x65,0x5f,0x62,0x6f,0x78,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20, + 0x6c,0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x61,0x61, + 0x62,0x62,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x70,0x2c,0x20,0x74,0x68,0x72,0x65,0x61, 0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20, - 0x63,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x68,0x65,0x2c,0x20,0x74,0x68,0x72,0x65, - 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26, - 0x20,0x75,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x75,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x70,0x20,0x2d,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d,0x20, - 0x74,0x72,0x61,0x6e,0x73,0x70,0x6f,0x73,0x65,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x78,0x32,0x28,0x75,0x2c,0x20,0x73,0x6b,0x65,0x77,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x29,0x29,0x29,0x20,0x2a,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x70,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x20,0x3d,0x20,0x68,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, - 0x74,0x75,0x72,0x6e,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x61,0x61, - 0x62,0x62,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20, - 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75, - 0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c, - 0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x61,0x66,0x65, - 0x5f,0x64,0x69,0x76,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73, - 0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x61,0x2c,0x20,0x74,0x68,0x72,0x65, - 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20, - 0x62,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, - 0x32,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x20,0x3d, - 0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x32,0x35,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32, - 0x32,0x35,0x20,0x3d,0x20,0x61,0x20,0x2f,0x20,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x32,0x32, - 0x35,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c, - 0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f, - 0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65, - 0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x61,0x66,0x65,0x5f,0x6c,0x65, - 0x6e,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x76,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x33,0x38,0x20,0x3d,0x20,0x64,0x6f,0x74, - 0x28,0x76,0x2c,0x20,0x76,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x5f,0x32,0x34,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x5f,0x32,0x33,0x38,0x20,0x3d,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x34,0x31,0x20, - 0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x5f,0x32,0x34,0x31,0x20,0x3d,0x20,0x73,0x71,0x72,0x74,0x28, - 0x5f,0x32,0x33,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x32,0x34,0x31,0x3b,0x0a,0x7d,0x0a, - 0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f, - 0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c, - 0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x73,0x65,0x67, - 0x6d,0x65,0x6e,0x74,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73, - 0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x70,0x2c,0x20,0x74,0x68,0x72, - 0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x26,0x20,0x61,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73, - 0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x62,0x29,0x0a,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x30,0x32,0x20,0x3d, - 0x20,0x62,0x20,0x2d,0x20,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x32,0x20,0x5f,0x34,0x30,0x36,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x61,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x30,0x36,0x2c,0x20,0x5f,0x34,0x30, - 0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x30,0x32, - 0x2c,0x20,0x5f,0x34,0x30,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x34, - 0x30,0x36,0x20,0x2d,0x20,0x28,0x5f,0x34,0x30,0x32,0x20,0x2a,0x20,0x66,0x61,0x73, - 0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x66,0x65,0x5f,0x64,0x69, - 0x76,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x61,0x66,0x65,0x5f,0x6c, - 0x65,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x7d,0x0a,0x0a, - 0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f, - 0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77, - 0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x64,0x65,0x74,0x32,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63, - 0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x61,0x2c,0x20, - 0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x26,0x20,0x62,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, - 0x74,0x75,0x72,0x6e,0x20,0x66,0x6d,0x61,0x28,0x61,0x2e,0x78,0x2c,0x20,0x62,0x2e, - 0x79,0x2c,0x20,0x2d,0x28,0x61,0x2e,0x79,0x20,0x2a,0x20,0x62,0x2e,0x78,0x29,0x29, + 0x68,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x20,0x5f,0x33,0x36,0x30,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x70,0x29,0x20,0x2d, + 0x20,0x68,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, + 0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78, + 0x28,0x5f,0x33,0x36,0x30,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e, + 0x30,0x29,0x29,0x29,0x20,0x2b,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x69,0x6e, + 0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x5f,0x33,0x36,0x30,0x2e, + 0x78,0x2c,0x20,0x5f,0x33,0x36,0x30,0x2e,0x79,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29, 0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69, 0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f, 0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29, 0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65, - 0x5f,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x28,0x74,0x68,0x72,0x65,0x61,0x64, - 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x70, - 0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x61,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64, - 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x62, - 0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x63,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x33,0x32,0x20,0x3d,0x20,0x62,0x20, - 0x2d,0x20,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, - 0x5f,0x34,0x33,0x36,0x20,0x3d,0x20,0x63,0x20,0x2d,0x20,0x62,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x34,0x30,0x20,0x3d,0x20, - 0x61,0x20,0x2d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x32,0x20,0x5f,0x34,0x34,0x34,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x61,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x34,0x38,0x20, - 0x3d,0x20,0x70,0x20,0x2d,0x20,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x20,0x5f,0x34,0x35,0x32,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x63, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x34,0x34,0x2c,0x20,0x5f,0x34, - 0x33,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x33, - 0x32,0x2c,0x20,0x5f,0x34,0x33,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x36,0x37,0x20,0x3d,0x20,0x5f,0x34,0x34,0x34, - 0x20,0x2d,0x20,0x28,0x5f,0x34,0x33,0x32,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a, - 0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28, - 0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c, - 0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d, - 0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x34,0x38,0x2c,0x20,0x5f,0x34,0x33,0x36,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x33,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x33,0x36,0x2c,0x20, - 0x5f,0x34,0x33,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x32,0x20,0x5f,0x34,0x38,0x32,0x20,0x3d,0x20,0x5f,0x34,0x34,0x38,0x20,0x2d,0x20, - 0x28,0x5f,0x34,0x33,0x36,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c, - 0x61,0x6d,0x70,0x28,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x2c,0x20, - 0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20, - 0x64,0x6f,0x74,0x28,0x5f,0x34,0x35,0x32,0x2c,0x20,0x5f,0x34,0x34,0x30,0x29,0x3b, + 0x5f,0x62,0x6f,0x78,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x26,0x20,0x70,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, + 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x63,0x2c,0x20,0x74, + 0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x26,0x20,0x68,0x65,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63, + 0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x75,0x29,0x0a, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x20,0x3d,0x20,0x75,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x2d,0x3d, + 0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x20,0x3d,0x20,0x74,0x72,0x61,0x6e, + 0x73,0x70,0x6f,0x73,0x65,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x78,0x32,0x28,0x75, + 0x2c,0x20,0x73,0x6b,0x65,0x77,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x29,0x29,0x20, + 0x2a,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20, + 0x3d,0x20,0x68,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, + 0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x61,0x61,0x62,0x62,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29, + 0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69, + 0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f, + 0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29, + 0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76, + 0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x26,0x20,0x61,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63, + 0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x62,0x29,0x0a,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x33,0x37,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x20,0x3d,0x3d,0x20,0x30,0x2e, + 0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x5f,0x32,0x33,0x37,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x33,0x37,0x20,0x3d, + 0x20,0x61,0x20,0x2f,0x20,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x32,0x33,0x37,0x3b,0x0a,0x7d, + 0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20, + 0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61, + 0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x73,0x61,0x66,0x65,0x5f,0x6c,0x65,0x6e,0x28,0x74,0x68, + 0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x26,0x20,0x76,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x5f,0x32,0x35,0x30,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x76,0x2c,0x20, + 0x76,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32, + 0x35,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x32,0x35,0x30, + 0x20,0x3d,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x35,0x33,0x20,0x3d,0x20,0x30,0x2e, + 0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, + 0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x5f,0x32,0x35,0x33,0x20,0x3d,0x20,0x73,0x71,0x72,0x74,0x28,0x5f,0x32,0x35,0x30, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, + 0x75,0x72,0x6e,0x20,0x5f,0x32,0x35,0x33,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61, + 0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74, + 0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73, + 0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x73,0x65,0x67,0x6d,0x65,0x6e,0x74, + 0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x32,0x26,0x20,0x70,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20, + 0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x61,0x2c, + 0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x32,0x26,0x20,0x62,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x30,0x35,0x20,0x3d,0x20,0x62,0x20,0x2d, + 0x20,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f, + 0x34,0x30,0x39,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x61,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x64, + 0x6f,0x74,0x28,0x5f,0x34,0x30,0x39,0x2c,0x20,0x5f,0x34,0x30,0x35,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x30,0x35,0x2c,0x20,0x5f,0x34, + 0x30,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x34,0x30,0x39,0x20,0x2d, + 0x20,0x28,0x5f,0x34,0x30,0x35,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63, + 0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x30, + 0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72, + 0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x61,0x66,0x65,0x5f,0x6c,0x65,0x6e,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74, + 0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72, + 0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f, + 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64, + 0x65,0x74,0x32,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x61,0x2c,0x20,0x74,0x68,0x72,0x65, + 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26, + 0x20,0x62,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, + 0x20,0x66,0x6d,0x61,0x28,0x61,0x2e,0x78,0x2c,0x20,0x62,0x2e,0x79,0x2c,0x20,0x2d, + 0x28,0x61,0x2e,0x79,0x20,0x2a,0x20,0x62,0x2e,0x78,0x29,0x29,0x3b,0x0a,0x7d,0x0a, + 0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f, + 0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c, + 0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x74,0x72,0x69, + 0x61,0x6e,0x67,0x6c,0x65,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e, + 0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x70,0x2c,0x20,0x74,0x68, + 0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x26,0x20,0x61,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e, + 0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x62,0x2c,0x20,0x74,0x68, + 0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x26,0x20,0x63,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x20,0x5f,0x34,0x33,0x35,0x20,0x3d,0x20,0x62,0x20,0x2d,0x20,0x61,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x33,0x39, + 0x20,0x3d,0x20,0x63,0x20,0x2d,0x20,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x34,0x33,0x20,0x3d,0x20,0x61,0x20,0x2d,0x20, + 0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34, + 0x34,0x37,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x35,0x31,0x20,0x3d,0x20,0x70,0x20, + 0x2d,0x20,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, + 0x5f,0x34,0x35,0x35,0x20,0x3d,0x20,0x70,0x20,0x2d,0x20,0x63,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20, + 0x64,0x6f,0x74,0x28,0x5f,0x34,0x34,0x37,0x2c,0x20,0x5f,0x34,0x33,0x35,0x29,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x35,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x34,0x30,0x2c,0x20,0x5f, - 0x34,0x34,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x20,0x5f,0x34,0x39,0x37,0x20,0x3d,0x20,0x5f,0x34,0x35,0x32,0x20,0x2d,0x20,0x28, - 0x5f,0x34,0x34,0x30,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61, + 0x5f,0x31,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x33,0x35,0x2c,0x20,0x5f, + 0x34,0x33,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x20,0x5f,0x34,0x37,0x30,0x20,0x3d,0x20,0x5f,0x34,0x34,0x37,0x20,0x2d,0x20,0x28, + 0x5f,0x34,0x33,0x35,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61, 0x6d,0x70,0x28,0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20,0x30, - 0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20, - 0x5f,0x34,0x33,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x34,0x34,0x30,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x35,0x30,0x33,0x20, - 0x3d,0x20,0x64,0x65,0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f, - 0x34,0x34,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x5f,0x34,0x33,0x32,0x3b,0x0a, + 0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x30,0x2e,0x30, + 0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x64,0x6f,0x74, + 0x28,0x5f,0x34,0x35,0x31,0x2c,0x20,0x5f,0x34,0x33,0x39,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20, + 0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x33,0x39,0x2c,0x20,0x5f,0x34,0x33,0x39, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34, + 0x38,0x35,0x20,0x3d,0x20,0x5f,0x34,0x35,0x31,0x20,0x2d,0x20,0x28,0x5f,0x34,0x33, + 0x39,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28, + 0x73,0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c, + 0x20,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28, + 0x5f,0x34,0x35,0x35,0x2c,0x20,0x5f,0x34,0x34,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d, + 0x20,0x64,0x6f,0x74,0x28,0x5f,0x34,0x34,0x33,0x2c,0x20,0x5f,0x34,0x34,0x33,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x35,0x30, + 0x30,0x20,0x3d,0x20,0x5f,0x34,0x35,0x35,0x20,0x2d,0x20,0x28,0x5f,0x34,0x34,0x33, + 0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73, + 0x61,0x66,0x65,0x5f,0x64,0x69,0x76,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20, + 0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x34,0x33,0x35, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x34,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x35,0x30,0x36,0x20,0x3d,0x20,0x64,0x65, + 0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f,0x34,0x34,0x37,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x39,0x20,0x3d,0x20,0x5f,0x34,0x33,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20, + 0x3d,0x20,0x5f,0x34,0x35,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x5f,0x34, + 0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x5f,0x34,0x35,0x35,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x30,0x20,0x3d,0x20,0x5f,0x34,0x34,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20, - 0x3d,0x20,0x5f,0x34,0x33,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x5f,0x34, - 0x35,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x5f,0x34,0x34,0x30,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x35,0x33,0x39,0x20, - 0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x69,0x6e,0x28,0x66,0x61,0x73,0x74, - 0x3a,0x3a,0x6d,0x69,0x6e,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x64,0x6f,0x74, - 0x28,0x5f,0x34,0x36,0x37,0x2c,0x20,0x5f,0x34,0x36,0x37,0x29,0x2c,0x20,0x5f,0x35, - 0x30,0x33,0x20,0x2a,0x20,0x64,0x65,0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x29,0x29,0x2c,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x28,0x64,0x6f,0x74,0x28,0x5f,0x34,0x38,0x32,0x2c,0x20,0x5f, - 0x34,0x38,0x32,0x29,0x2c,0x20,0x5f,0x35,0x30,0x33,0x20,0x2a,0x20,0x64,0x65,0x74, - 0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x31,0x29,0x29,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28, - 0x64,0x6f,0x74,0x28,0x5f,0x34,0x39,0x37,0x2c,0x20,0x5f,0x34,0x39,0x37,0x29,0x2c, - 0x20,0x5f,0x35,0x30,0x33,0x20,0x2a,0x20,0x64,0x65,0x74,0x32,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x29, - 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28, - 0x2d,0x73,0x71,0x72,0x74,0x28,0x5f,0x35,0x33,0x39,0x2e,0x78,0x29,0x29,0x20,0x2a, - 0x20,0x73,0x69,0x67,0x6e,0x28,0x5f,0x35,0x33,0x39,0x2e,0x79,0x29,0x3b,0x0a,0x7d, + 0x5f,0x31,0x33,0x20,0x3d,0x20,0x5f,0x34,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x35,0x34,0x32,0x20,0x3d,0x20,0x66,0x61, + 0x73,0x74,0x3a,0x3a,0x6d,0x69,0x6e,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x69, + 0x6e,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x64,0x6f,0x74,0x28,0x5f,0x34,0x37, + 0x30,0x2c,0x20,0x5f,0x34,0x37,0x30,0x29,0x2c,0x20,0x5f,0x35,0x30,0x36,0x20,0x2a, + 0x20,0x64,0x65,0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x39,0x29,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x28,0x64,0x6f,0x74,0x28,0x5f,0x34,0x38,0x35,0x2c,0x20,0x5f,0x34,0x38,0x35,0x29, + 0x2c,0x20,0x5f,0x35,0x30,0x36,0x20,0x2a,0x20,0x64,0x65,0x74,0x32,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31, + 0x29,0x29,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x64,0x6f,0x74,0x28, + 0x5f,0x35,0x30,0x30,0x2c,0x20,0x5f,0x35,0x30,0x30,0x29,0x2c,0x20,0x5f,0x35,0x30, + 0x36,0x20,0x2a,0x20,0x64,0x65,0x74,0x32,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x29,0x29,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x2d,0x73,0x71,0x72, + 0x74,0x28,0x5f,0x35,0x34,0x32,0x2e,0x78,0x29,0x29,0x20,0x2a,0x20,0x73,0x69,0x67, + 0x6e,0x28,0x5f,0x35,0x34,0x32,0x2e,0x79,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74, + 0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74, + 0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79, + 0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x73,0x64,0x66,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x28,0x74,0x68,0x72,0x65, + 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20, + 0x64,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26, + 0x20,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x62,0x73,0x28,0x64,0x29,0x20,0x2d, + 0x20,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74, + 0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74, + 0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79, + 0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74, + 0x34,0x20,0x73,0x64,0x66,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e, + 0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x61,0x2c,0x20,0x74,0x68, + 0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x34,0x26,0x20,0x62,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e, + 0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x64,0x2c,0x20,0x74,0x68,0x72, + 0x65,0x61,0x64,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x76,0x5f,0x73,0x74,0x72, + 0x6f,0x6b,0x65,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x26,0x20,0x76,0x5f,0x61,0x61,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20, + 0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x76,0x5f, + 0x66,0x69,0x6c,0x6c,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x64,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x33,0x30,0x33,0x20,0x3d,0x20,0x6d, + 0x69,0x78,0x28,0x62,0x2c,0x20,0x61,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28, + 0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x2c,0x20, + 0x76,0x5f,0x61,0x61,0x2c,0x20,0x73,0x64,0x66,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65, + 0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65, + 0x29,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, + 0x20,0x5f,0x33,0x33,0x35,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x66, + 0x6c,0x6f,0x61,0x74,0x28,0x76,0x5f,0x61,0x61,0x20,0x3e,0x20,0x30,0x2e,0x30,0x29, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20, + 0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x5f,0x33,0x30,0x33,0x2c,0x20,0x5f,0x33, + 0x30,0x33,0x2c,0x20,0x5f,0x33,0x33,0x35,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x73, + 0x65,0x6c,0x65,0x63,0x74,0x28,0x61,0x2c,0x20,0x62,0x2c,0x20,0x62,0x6f,0x6f,0x6c, + 0x34,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x64,0x2c, + 0x20,0x2d,0x31,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x20,0x3c,0x3d,0x20,0x30, + 0x2e,0x30,0x29,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x62,0x2c,0x20,0x61,0x2c,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65, + 0x70,0x28,0x30,0x2e,0x30,0x2c,0x20,0x76,0x5f,0x61,0x61,0x2c,0x20,0x64,0x29,0x29, + 0x29,0x2c,0x20,0x5f,0x33,0x33,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, + 0x28,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72, + 0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x7d,0x0a, + 0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f, + 0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c, + 0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c, + 0x6f,0x61,0x74,0x32,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x66,0x72,0x6f,0x6d, + 0x5f,0x68,0x65,0x69,0x67,0x68,0x74,0x6d,0x61,0x70,0x28,0x74,0x65,0x78,0x74,0x75, + 0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x74,0x65,0x78,0x2c, + 0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c, + 0x72,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x75,0x76,0x29,0x0a,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x35,0x37,0x34,0x20,0x3d,0x20, + 0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x74,0x65,0x78,0x53,0x6d, + 0x70,0x6c,0x72,0x2c,0x20,0x75,0x76,0x2c,0x20,0x69,0x6e,0x74,0x32,0x28,0x30,0x2c, + 0x20,0x2d,0x31,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x5f,0x35,0x37,0x35,0x20,0x3d,0x20,0x5f,0x35,0x37,0x34,0x2e,0x78,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x28,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x74,0x65,0x78, + 0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x75,0x76,0x2c,0x20,0x69,0x6e,0x74,0x32,0x28, + 0x2d,0x31,0x2c,0x20,0x31,0x29,0x29,0x2e,0x78,0x20,0x2d,0x20,0x5f,0x35,0x37,0x35, + 0x2c,0x20,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x74,0x65,0x78, + 0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x75,0x76,0x2c,0x20,0x69,0x6e,0x74,0x32,0x28, + 0x31,0x29,0x29,0x2e,0x78,0x20,0x2d,0x20,0x5f,0x35,0x37,0x35,0x29,0x3b,0x0a,0x7d, 0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20, 0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61, 0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x73,0x64,0x66,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x28, + 0x6c,0x6f,0x61,0x74,0x34,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x74,0x6f,0x5f, + 0x63,0x6f,0x6c,0x6f,0x72,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e, + 0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x6e,0x29,0x0a,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x34,0x28,0x28,0x6e,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x32,0x28,0x30,0x2e,0x35,0x29,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20, + 0x31,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20, + 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75, + 0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c, + 0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x73,0x68,0x61, + 0x64,0x65,0x72,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x20, 0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x26,0x20,0x64,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x26,0x20,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x29,0x0a,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x62,0x73,0x28, - 0x64,0x29,0x20,0x2d,0x20,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3b,0x0a,0x7d, - 0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20, - 0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61, - 0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66, - 0x6c,0x6f,0x61,0x74,0x34,0x20,0x73,0x64,0x66,0x28,0x74,0x68,0x72,0x65,0x61,0x64, - 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x61, - 0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x62,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64, - 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x64,0x2c, - 0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x76, - 0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e, - 0x74,0x20,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x26,0x20,0x5f,0x32,0x38, - 0x32,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26, - 0x20,0x76,0x5f,0x61,0x61,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x34,0x26,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x74,0x68, - 0x72,0x65,0x61,0x64,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x76,0x5f,0x66,0x69, - 0x6c,0x6c,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x5f,0x32,0x39,0x31,0x20,0x3d,0x20,0x5f,0x32,0x38,0x32,0x2e,0x75,0x5f,0x61,0x61, - 0x66,0x20,0x2a,0x20,0x5f,0x32,0x38,0x32,0x2e,0x75,0x5f,0x61,0x61,0x5f,0x73,0x63, - 0x61,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x32,0x39,0x35,0x20,0x3d,0x20,0x73,0x64,0x66,0x5f,0x73, - 0x74,0x72,0x6f,0x6b,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x76,0x5f,0x73, - 0x74,0x72,0x6f,0x6b,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x34,0x20,0x5f,0x33,0x33,0x34,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, - 0x28,0x76,0x5f,0x61,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75, - 0x6c,0x74,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x6d,0x69,0x78,0x28,0x73,0x65,0x6c, - 0x65,0x63,0x74,0x28,0x61,0x2c,0x20,0x62,0x2c,0x20,0x62,0x6f,0x6f,0x6c,0x34,0x28, - 0x5f,0x32,0x39,0x35,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x30,0x29,0x29,0x2c,0x20,0x6d, - 0x69,0x78,0x28,0x62,0x2c,0x20,0x61,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28, - 0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x2c,0x20, - 0x5f,0x32,0x39,0x31,0x2c,0x20,0x5f,0x32,0x39,0x35,0x29,0x29,0x29,0x2c,0x20,0x5f, - 0x33,0x33,0x34,0x29,0x2c,0x20,0x6d,0x69,0x78,0x28,0x73,0x65,0x6c,0x65,0x63,0x74, - 0x28,0x61,0x2c,0x20,0x62,0x2c,0x20,0x62,0x6f,0x6f,0x6c,0x34,0x28,0x66,0x61,0x73, - 0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x64,0x2c,0x20,0x2d,0x31,0x2e,0x30, - 0x2c,0x20,0x31,0x2e,0x30,0x29,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x30,0x29,0x29,0x2c, - 0x20,0x6d,0x69,0x78,0x28,0x62,0x2c,0x20,0x61,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x34,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30, - 0x2c,0x20,0x5f,0x32,0x39,0x31,0x2c,0x20,0x64,0x29,0x29,0x29,0x2c,0x20,0x5f,0x33, - 0x33,0x34,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x76,0x5f,0x66,0x69, - 0x6c,0x6c,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, - 0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74, - 0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72, - 0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f, - 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, - 0x73,0x68,0x61,0x64,0x65,0x72,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, - 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x63,0x6f,0x6c,0x6f, - 0x72,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x70,0x6f,0x73,0x2c,0x20,0x74,0x68,0x72, - 0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x26,0x20,0x75,0x76,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e, - 0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x73,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f, - 0x61,0x74,0x3e,0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x2c,0x20,0x73, - 0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78, - 0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20, - 0x73,0x68,0x61,0x64,0x65,0x72,0x5f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x26, - 0x20,0x5f,0x35,0x37,0x32,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64, - 0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x77,0x61,0x74,0x65,0x72,0x5f,0x74,0x65, - 0x78,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x77,0x61,0x74,0x65,0x72, - 0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x35,0x37,0x37,0x20,0x3d,0x20,0x6e, - 0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28, - 0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20, - 0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x75,0x76,0x2e,0x78,0x20,0x2a,0x20, - 0x35,0x2e,0x30,0x2c,0x20,0x75,0x76,0x2e,0x79,0x20,0x2a,0x20,0x33,0x2e,0x37,0x35, - 0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x32,0x28,0x5f,0x35,0x37,0x32,0x2e,0x74,0x69,0x6d,0x65,0x29,0x29,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x35,0x37,0x39,0x20,0x3d, - 0x20,0x5f,0x35,0x37,0x37,0x2e,0x78,0x20,0x2d,0x20,0x30,0x2e,0x35,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x63,0x20,0x3d,0x20,0x77,0x61, - 0x74,0x65,0x72,0x5f,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x77, - 0x61,0x74,0x65,0x72,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x28, - 0x75,0x76,0x20,0x2b,0x20,0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e, - 0x30,0x30,0x31,0x35,0x36,0x32,0x35,0x30,0x30,0x30,0x32,0x33,0x32,0x38,0x33,0x30, - 0x36,0x34,0x33,0x36,0x35,0x33,0x38,0x36,0x39,0x36,0x32,0x38,0x39,0x30,0x36,0x32, - 0x35,0x2c,0x20,0x30,0x2e,0x30,0x30,0x32,0x30,0x38,0x33,0x33,0x33,0x33,0x34,0x34, - 0x31,0x39,0x38,0x37,0x36,0x33,0x33,0x37,0x30,0x35,0x31,0x33,0x39,0x31,0x36,0x30, - 0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2a,0x20,0x5f,0x35,0x37,0x39,0x29,0x20,0x2a, - 0x20,0x5f,0x35,0x37,0x32,0x2e,0x61,0x6d,0x70,0x6c,0x69,0x74,0x75,0x64,0x65,0x29, - 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f, - 0x36,0x30,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x35,0x37, - 0x32,0x2e,0x73,0x68,0x6f,0x77,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x20,0x3e,0x20,0x30, + 0x61,0x74,0x32,0x26,0x20,0x70,0x6f,0x73,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64, + 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x75, + 0x76,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x34,0x26,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x2c,0x20, + 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e, + 0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x2c,0x20,0x73,0x61,0x6d,0x70, + 0x6c,0x65,0x72,0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70, + 0x6c,0x72,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c, + 0x6f,0x61,0x74,0x3e,0x20,0x77,0x61,0x76,0x65,0x6c,0x65,0x74,0x73,0x5f,0x74,0x65, + 0x78,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x77,0x61,0x76,0x65,0x6c, + 0x65,0x74,0x73,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x74,0x65, + 0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x73, + 0x63,0x65,0x6e,0x65,0x5f,0x74,0x65,0x78,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65, + 0x72,0x20,0x73,0x63,0x65,0x6e,0x65,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72, + 0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x73,0x68,0x61,0x64,0x65, + 0x72,0x5f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x26,0x20,0x5f,0x36,0x35,0x31, + 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x75,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x36,0x30,0x34,0x20,0x3d,0x20,0x6e,0x6f,0x72, + 0x6d,0x61,0x6c,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x68,0x65,0x69,0x67,0x68,0x74,0x6d, + 0x61,0x70,0x28,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x2c,0x20,0x6e,0x6f, + 0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x75,0x76,0x20,0x2b,0x20, + 0x28,0x28,0x5f,0x36,0x30,0x34,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28, + 0x30,0x2e,0x30,0x30,0x36,0x32,0x35,0x30,0x30,0x30,0x30,0x30,0x39,0x33,0x31,0x33, + 0x32,0x32,0x35,0x37,0x34,0x36,0x31,0x35,0x34,0x37,0x38,0x35,0x31,0x35,0x36,0x32, + 0x35,0x2c,0x20,0x30,0x2e,0x30,0x30,0x38,0x33,0x33,0x33,0x33,0x33,0x33,0x37,0x36, + 0x37,0x39,0x35,0x30,0x35,0x33,0x34,0x38,0x32,0x30,0x35,0x35,0x36,0x36,0x34,0x30, + 0x36,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x31,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x36,0x31,0x35,0x20,0x3d, + 0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x68,0x65,0x69, + 0x67,0x68,0x74,0x6d,0x61,0x70,0x28,0x77,0x61,0x76,0x65,0x6c,0x65,0x74,0x73,0x5f, + 0x74,0x65,0x78,0x2c,0x20,0x77,0x61,0x76,0x65,0x6c,0x65,0x74,0x73,0x5f,0x74,0x65, + 0x78,0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x36,0x30,0x34,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20, + 0x3d,0x20,0x5f,0x36,0x31,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x20,0x5f,0x36,0x33,0x31,0x20,0x3d,0x20,0x5f,0x36,0x30,0x34,0x20,0x2b, + 0x20,0x5f,0x36,0x31,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x34,0x20,0x63,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x73,0x63,0x65,0x6e,0x65,0x5f, + 0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x73,0x63,0x65,0x6e,0x65, + 0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x28,0x75,0x76,0x20,0x2b, + 0x20,0x28,0x28,0x5f,0x36,0x33,0x31,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x28,0x30,0x2e,0x30,0x30,0x36,0x32,0x35,0x30,0x30,0x30,0x30,0x30,0x39,0x33,0x31, + 0x33,0x32,0x32,0x35,0x37,0x34,0x36,0x31,0x35,0x34,0x37,0x38,0x35,0x31,0x35,0x36, + 0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x30,0x38,0x33,0x33,0x33,0x33,0x33,0x33,0x37, + 0x36,0x37,0x39,0x35,0x30,0x35,0x33,0x34,0x38,0x32,0x30,0x35,0x35,0x36,0x36,0x34, + 0x30,0x36,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x31,0x30,0x2e,0x30,0x29,0x29,0x29, + 0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x31,0x2e,0x30,0x29,0x2c,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x34,0x28,0x28,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x5f,0x36, + 0x33,0x31,0x29,0x20,0x3e,0x20,0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30, + 0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33,0x31, + 0x32,0x35,0x29,0x20,0x3f,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30, + 0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35, + 0x36,0x32,0x35,0x20,0x3a,0x20,0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x36,0x35,0x36,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x35,0x31,0x2e,0x73,0x68,0x6f,0x77,0x5f, + 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x73,0x20,0x3e,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x36, + 0x30,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x36,0x31, + 0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x35,0x36,0x20, + 0x3d,0x20,0x6d,0x69,0x78,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x74,0x6f,0x5f, + 0x63,0x6f,0x6c,0x6f,0x72,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x2c,0x20, + 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x5f,0x74,0x6f,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x28, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, + 0x28,0x30,0x2e,0x32,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x35,0x36,0x20,0x3d,0x20,0x63,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x36, + 0x35,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f, + 0x36,0x37,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x35, + 0x31,0x2e,0x73,0x68,0x6f,0x77,0x5f,0x6e,0x6f,0x69,0x73,0x65,0x20,0x3e,0x20,0x30, 0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x5f,0x36,0x30,0x32,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28, - 0x5f,0x35,0x37,0x39,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x30, - 0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, - 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x5f,0x36,0x30,0x32,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x36,0x30,0x32,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x36,0x30,0x32,0x3b, - 0x0a,0x7d,0x0a,0x0a,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x6d,0x61,0x69, - 0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x28,0x6d,0x61,0x69, - 0x6e,0x30,0x5f,0x69,0x6e,0x20,0x69,0x6e,0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,0x65, - 0x5f,0x69,0x6e,0x5d,0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20, - 0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x26,0x20,0x5f,0x32,0x38,0x32,0x20, + 0x20,0x20,0x5f,0x36,0x37,0x33,0x20,0x3d,0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74, + 0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x6e,0x6f,0x69,0x73,0x65,0x5f, + 0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x75,0x76,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x37,0x33, + 0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x63,0x20,0x3d,0x20,0x5f,0x36,0x37,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, + 0x74,0x75,0x72,0x6e,0x20,0x5f,0x36,0x37,0x33,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x72, + 0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74, + 0x20,0x6d,0x61,0x69,0x6e,0x30,0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x20, + 0x69,0x6e,0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d,0x2c, + 0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x73,0x68,0x61,0x64,0x65,0x72, + 0x5f,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x26,0x20,0x5f,0x36,0x35,0x31,0x20, 0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20,0x63, - 0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x5f,0x75, - 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x73,0x26,0x20,0x5f,0x35,0x37,0x32,0x20,0x5b,0x5b, - 0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x31,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78, - 0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x6e,0x6f, - 0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72, - 0x65,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32, - 0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x77,0x61,0x74,0x65,0x72,0x5f,0x74, - 0x65,0x78,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x31,0x29,0x5d, - 0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f, - 0x61,0x74,0x3e,0x20,0x75,0x5f,0x69,0x6d,0x61,0x67,0x65,0x20,0x5b,0x5b,0x74,0x65, - 0x78,0x74,0x75,0x72,0x65,0x28,0x32,0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70, - 0x6c,0x65,0x72,0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70, - 0x6c,0x72,0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x28,0x30,0x29,0x5d, - 0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x77,0x61,0x74,0x65,0x72, - 0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70, - 0x6c,0x65,0x72,0x28,0x31,0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65, - 0x72,0x20,0x75,0x5f,0x69,0x6d,0x61,0x67,0x65,0x53,0x6d,0x70,0x6c,0x72,0x20,0x5b, - 0x5b,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x28,0x32,0x29,0x5d,0x5d,0x29,0x0a,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f, - 0x75,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f, - 0x6c,0x20,0x5f,0x36,0x31,0x38,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x74,0x79, - 0x70,0x65,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62, - 0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x32,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, - 0x20,0x28,0x5f,0x36,0x31,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x32,0x34,0x20,0x3d,0x20,0x69,0x6e,0x2e, - 0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x31,0x39,0x36, - 0x30,0x37,0x38,0x34,0x34,0x32,0x39,0x36,0x38,0x34,0x32,0x38,0x31,0x33,0x34,0x39, - 0x31,0x38,0x32,0x31,0x32,0x38,0x39,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x32,0x34,0x20,0x3d, - 0x20,0x5f,0x36,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x32,0x37,0x20,0x3d,0x20,0x69,0x6e,0x2e, - 0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x31,0x39,0x36, - 0x30,0x37,0x38,0x34,0x34,0x32,0x39,0x36,0x38,0x34,0x32,0x38,0x31,0x33,0x34,0x39, - 0x31,0x38,0x32,0x31,0x32,0x38,0x39,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x33,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x66,0x20,0x28,0x5f,0x36,0x32,0x37,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x33,0x33,0x20,0x3d,0x20,0x69, - 0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x35, - 0x38,0x38,0x32,0x33,0x35,0x33,0x30,0x35,0x36,0x32,0x32,0x32,0x32,0x30,0x30,0x33, - 0x39,0x33,0x36,0x37,0x36,0x37,0x35,0x37,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x33,0x33,0x20, - 0x3d,0x20,0x5f,0x36,0x32,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x33,0x36,0x20,0x3d,0x20,0x69,0x6e, - 0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x35,0x38, - 0x38,0x32,0x33,0x35,0x33,0x30,0x35,0x36,0x32,0x32,0x32,0x32,0x30,0x30,0x33,0x39, - 0x33,0x36,0x37,0x36,0x37,0x35,0x37,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x34,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x66,0x20,0x28,0x5f,0x36,0x33,0x36,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x34,0x32,0x20,0x3d,0x20,0x69, - 0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x39, + 0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d, + 0x73,0x26,0x20,0x5f,0x37,0x35,0x36,0x20,0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72, + 0x28,0x31,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64, + 0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65, + 0x78,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x30,0x29,0x5d,0x5d, + 0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61, + 0x74,0x3e,0x20,0x77,0x61,0x76,0x65,0x6c,0x65,0x74,0x73,0x5f,0x74,0x65,0x78,0x20, + 0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x31,0x29,0x5d,0x5d,0x2c,0x20, + 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e, + 0x20,0x73,0x63,0x65,0x6e,0x65,0x5f,0x74,0x65,0x78,0x20,0x5b,0x5b,0x74,0x65,0x78, + 0x74,0x75,0x72,0x65,0x28,0x32,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75, + 0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x75,0x5f,0x69,0x6d, + 0x61,0x67,0x65,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x33,0x29, + 0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x6e,0x6f,0x69,0x73, + 0x65,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x20,0x5b,0x5b,0x73,0x61,0x6d, + 0x70,0x6c,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c, + 0x65,0x72,0x20,0x77,0x61,0x76,0x65,0x6c,0x65,0x74,0x73,0x5f,0x74,0x65,0x78,0x53, + 0x6d,0x70,0x6c,0x72,0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x28,0x31, + 0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x73,0x63,0x65, + 0x6e,0x65,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72,0x20,0x5b,0x5b,0x73,0x61, + 0x6d,0x70,0x6c,0x65,0x72,0x28,0x32,0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70, + 0x6c,0x65,0x72,0x20,0x75,0x5f,0x69,0x6d,0x61,0x67,0x65,0x53,0x6d,0x70,0x6c,0x72, + 0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x28,0x33,0x29,0x5d,0x5d,0x29, + 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74, + 0x20,0x6f,0x75,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62, + 0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x38,0x39,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f, + 0x74,0x79,0x70,0x65,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x39,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x36,0x38,0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x39,0x35,0x20,0x3d,0x20,0x69, + 0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x31, + 0x39,0x36,0x30,0x37,0x38,0x34,0x34,0x32,0x39,0x36,0x38,0x34,0x32,0x38,0x31,0x33, + 0x34,0x39,0x31,0x38,0x32,0x31,0x32,0x38,0x39,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x39,0x35, + 0x20,0x3d,0x20,0x5f,0x36,0x38,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x39,0x38,0x20,0x3d,0x20,0x69, + 0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x31, + 0x39,0x36,0x30,0x37,0x38,0x34,0x34,0x32,0x39,0x36,0x38,0x34,0x32,0x38,0x31,0x33, + 0x34,0x39,0x31,0x38,0x32,0x31,0x32,0x38,0x39,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x30,0x34,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x39,0x38,0x29,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x30,0x34,0x20,0x3d, + 0x20,0x69,0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30, + 0x30,0x35,0x38,0x38,0x32,0x33,0x35,0x33,0x30,0x35,0x36,0x32,0x32,0x32,0x32,0x30, + 0x30,0x33,0x39,0x33,0x36,0x37,0x36,0x37,0x35,0x37,0x38,0x31,0x32,0x35,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x30, + 0x34,0x20,0x3d,0x20,0x5f,0x36,0x39,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x30,0x37,0x20,0x3d,0x20, + 0x69,0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30, + 0x35,0x38,0x38,0x32,0x33,0x35,0x33,0x30,0x35,0x36,0x32,0x32,0x32,0x32,0x30,0x30, + 0x33,0x39,0x33,0x36,0x37,0x36,0x37,0x35,0x37,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x31,0x33,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x30,0x37,0x29,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x31,0x33,0x20,0x3d, + 0x20,0x69,0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30, + 0x30,0x39,0x38,0x30,0x33,0x39,0x32,0x31,0x39,0x31,0x35,0x35,0x39,0x30,0x37,0x36, + 0x33,0x30,0x39,0x32,0x30,0x34,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x31,0x33, + 0x20,0x3d,0x20,0x5f,0x37,0x30,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x31,0x36,0x20,0x3d,0x20,0x69, + 0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x39, 0x38,0x30,0x33,0x39,0x32,0x31,0x39,0x31,0x35,0x35,0x39,0x30,0x37,0x36,0x33,0x30, 0x39,0x32,0x30,0x34,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x32,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x37,0x31,0x36,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x32,0x32,0x20,0x3d,0x20,0x69, + 0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x31,0x33, + 0x37,0x32,0x35,0x34,0x39,0x30,0x33,0x30,0x39,0x32,0x39,0x38,0x30,0x33,0x38,0x34, + 0x38,0x32,0x36,0x36,0x36,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x34,0x32,0x20,0x3d, - 0x20,0x5f,0x36,0x33,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x34,0x35,0x20,0x3d,0x20,0x69,0x6e,0x2e, - 0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x39,0x38,0x30, - 0x33,0x39,0x32,0x31,0x39,0x31,0x35,0x35,0x39,0x30,0x37,0x36,0x33,0x30,0x39,0x32, - 0x30,0x34,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62, - 0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x35,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, - 0x20,0x28,0x5f,0x36,0x34,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x35,0x31,0x20,0x3d,0x20,0x69,0x6e,0x2e, - 0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x31,0x33,0x37,0x32, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x32,0x32,0x20,0x3d, + 0x20,0x5f,0x37,0x31,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x32,0x35,0x20,0x3d,0x20,0x69,0x6e,0x2e, + 0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x31,0x33,0x37,0x32, 0x35,0x34,0x39,0x30,0x33,0x30,0x39,0x32,0x39,0x38,0x30,0x33,0x38,0x34,0x38,0x32, - 0x36,0x36,0x36,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x35,0x31,0x20,0x3d,0x20,0x5f, - 0x36,0x34,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62, - 0x6f,0x6f,0x6c,0x20,0x5f,0x36,0x35,0x34,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f, - 0x74,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x31,0x33,0x37,0x32,0x35,0x34, - 0x39,0x30,0x33,0x30,0x39,0x32,0x39,0x38,0x30,0x33,0x38,0x34,0x38,0x32,0x36,0x36, - 0x36,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f, - 0x6c,0x20,0x5f,0x36,0x36,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x5f,0x36,0x35,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x5f,0x36,0x36,0x30,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f, - 0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x31,0x37,0x36,0x34,0x37,0x30, - 0x35,0x39,0x36,0x33,0x34,0x33,0x32,0x37,0x38,0x38,0x38,0x34,0x38,0x38,0x37,0x36, - 0x39,0x35,0x33,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x36,0x30,0x20,0x3d,0x20,0x5f,0x36,0x35,0x34, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, - 0x20,0x5f,0x36,0x36,0x33,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70, - 0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x31,0x37,0x36,0x34,0x37,0x30,0x35,0x39,0x36, - 0x33,0x34,0x33,0x32,0x37,0x38,0x38,0x38,0x34,0x38,0x38,0x37,0x36,0x39,0x35,0x33, - 0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x36, - 0x36,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x36,0x33, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x5f,0x36,0x36,0x39,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65, - 0x20,0x3c,0x20,0x30,0x2e,0x30,0x32,0x31,0x35,0x36,0x38,0x36,0x32,0x38,0x30,0x32, - 0x38,0x30,0x33,0x35,0x31,0x36,0x33,0x38,0x37,0x39,0x33,0x39,0x34,0x35,0x33,0x31, - 0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c, - 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x36,0x36,0x39,0x20,0x3d,0x20,0x5f,0x36,0x36,0x33,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x63, - 0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x36,0x37,0x36,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x5f,0x36,0x32,0x34,0x20, - 0x26,0x26,0x20,0x5f,0x36,0x33,0x33,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x75,0x76,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x5f,0x32,0x38,0x32,0x2e,0x75,0x5f, - 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x75,0x5f,0x69,0x6d,0x61,0x67,0x65,0x2e,0x73, - 0x61,0x6d,0x70,0x6c,0x65,0x28,0x75,0x5f,0x69,0x6d,0x61,0x67,0x65,0x53,0x6d,0x70, - 0x6c,0x72,0x2c,0x20,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x5f,0x75,0x76,0x28,0x70,0x61, - 0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x37,0x36,0x20,0x3d,0x20,0x64, - 0x65,0x5f,0x67,0x61,0x6d,0x6d,0x61,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, - 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, - 0x36,0x37,0x36,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x36,0x37,0x36,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x36,0x39,0x37,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x32,0x34,0x29,0x0a,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x6f,0x6c,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x6f,0x76,0x65,0x72,0x6c,0x61, - 0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x36,0x39, - 0x37,0x20,0x3d,0x20,0x67,0x61,0x6d,0x6d,0x61,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c, + 0x36,0x36,0x36,0x30,0x31,0x35,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62, + 0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x33,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x5f,0x37,0x32,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x33,0x31,0x20,0x3d,0x20,0x69,0x6e,0x2e, + 0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x31,0x37,0x36,0x34, + 0x37,0x30,0x35,0x39,0x36,0x33,0x34,0x33,0x32,0x37,0x38,0x38,0x38,0x34,0x38,0x38, + 0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x33,0x31,0x20,0x3d,0x20,0x5f,0x37, + 0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f, + 0x6f,0x6c,0x20,0x5f,0x37,0x33,0x34,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x74, + 0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x2e,0x30,0x31,0x37,0x36,0x34,0x37,0x30,0x35, + 0x39,0x36,0x33,0x34,0x33,0x32,0x37,0x38,0x38,0x38,0x34,0x38,0x38,0x37,0x36,0x39, + 0x35,0x33,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20, + 0x5f,0x37,0x34,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37, + 0x33,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x5f,0x37,0x34,0x30,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x74,0x79, + 0x70,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x32,0x31,0x35,0x36,0x38,0x36,0x32,0x38, + 0x30,0x32,0x38,0x30,0x33,0x35,0x31,0x36,0x33,0x38,0x37,0x39,0x33,0x39,0x34,0x35, + 0x33,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x5f,0x37,0x34,0x30,0x20,0x3d,0x20,0x5f,0x37,0x33,0x34,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, + 0x20,0x63,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x30,0x2e,0x30,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x37,0x34, + 0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x5f,0x36,0x39, + 0x35,0x20,0x26,0x26,0x20,0x5f,0x37,0x30,0x34,0x29,0x29,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x75,0x76, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x5f,0x37,0x35,0x36,0x2e, + 0x75,0x5f,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x75,0x5f,0x69,0x6d,0x61,0x67,0x65, + 0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x75,0x5f,0x69,0x6d,0x61,0x67,0x65,0x53, + 0x6d,0x70,0x6c,0x72,0x2c,0x20,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x5f,0x75,0x76,0x28, + 0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x34,0x37,0x20,0x3d, + 0x20,0x64,0x65,0x5f,0x67,0x61,0x6d,0x6d,0x61,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c, 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x36,0x39,0x37,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x36,0x39,0x37,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x37,0x31,0x33,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x33,0x33,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x31,0x33, - 0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x6f,0x6c,0x20,0x2a,0x20,0x63,0x2e, - 0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, - 0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x5f,0x37,0x31,0x33,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x28,0x5f, - 0x37,0x31,0x33,0x2c,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x6f,0x6c,0x2c,0x20,0x62, - 0x6f,0x6f,0x6c,0x34,0x28,0x5f,0x36,0x36,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x34,0x32,0x29,0x0a,0x20,0x20, + 0x20,0x5f,0x37,0x34,0x37,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x37,0x34,0x37,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x37,0x37,0x31,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x39,0x35,0x29,0x0a,0x20,0x20, 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x69,0x6e,0x2e, - 0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20, - 0x69,0x6e,0x2e,0x76,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d, - 0x20,0x69,0x6e,0x2e,0x76,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20, - 0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37,0x34,0x34,0x20,0x3d,0x20,0x64, - 0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x62,0x6f,0x78,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d,0x20,0x5f,0x37,0x34, - 0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, - 0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x69,0x66,0x20,0x28,0x5f,0x36,0x35,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20, - 0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x61, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20, - 0x69,0x6e,0x2e,0x76,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37,0x35,0x35,0x20,0x3d, - 0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x73,0x65,0x67,0x6d,0x65,0x6e, - 0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d, - 0x20,0x5f,0x37,0x35,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x63,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x6f, + 0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x6f,0x76,0x65,0x72, + 0x6c,0x61,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, + 0x37,0x37,0x31,0x20,0x3d,0x20,0x67,0x61,0x6d,0x6d,0x61,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x5f,0x37,0x37,0x31,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x37,0x37,0x31,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x37,0x38,0x37, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x30,0x34,0x29,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37, + 0x38,0x37,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x6f,0x6c,0x20,0x2a,0x20, + 0x63,0x2e,0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, + 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x5f,0x37,0x38,0x37,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x73,0x65,0x6c,0x65,0x63,0x74, + 0x28,0x5f,0x37,0x38,0x37,0x2c,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x6f,0x6c,0x2c, + 0x20,0x62,0x6f,0x6f,0x6c,0x34,0x28,0x5f,0x37,0x33,0x31,0x29,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x64,0x20,0x3d,0x20,0x30,0x2e,0x30, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x31,0x33,0x29,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x69, + 0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20, + 0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38, + 0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x33,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x69,0x6e,0x2e, - 0x76,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35, - 0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a, - 0x3a,0x6d,0x69,0x6e,0x28,0x5f,0x37,0x35,0x35,0x2c,0x20,0x64,0x69,0x73,0x74,0x61, - 0x6e,0x63,0x65,0x5f,0x73,0x65,0x67,0x6d,0x65,0x6e,0x74,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c, - 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x36, - 0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36, - 0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x69, - 0x6e,0x2e,0x76,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x62,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39, - 0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d,0x20,0x64, - 0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65, - 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x39,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x38,0x31,0x38,0x20,0x3d, + 0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x62,0x6f,0x78,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d,0x20,0x5f, + 0x38,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, + 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x32,0x32,0x29,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x30,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76, + 0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20, + 0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x38,0x32,0x39, + 0x20,0x3d,0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x73,0x65,0x67,0x6d, + 0x65,0x6e,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x2c,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64, + 0x20,0x3d,0x20,0x5f,0x38,0x32,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x69, + 0x6e,0x2e,0x76,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x35,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d,0x20,0x66,0x61,0x73, + 0x74,0x3a,0x3a,0x6d,0x69,0x6e,0x28,0x5f,0x38,0x32,0x39,0x2c,0x20,0x64,0x69,0x73, + 0x74,0x61,0x6e,0x63,0x65,0x5f,0x73,0x65,0x67,0x6d,0x65,0x6e,0x74,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x34,0x20,0x5f,0x37,0x38,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, - 0x28,0x28,0x28,0x21,0x5f,0x36,0x32,0x34,0x29,0x20,0x26,0x26,0x20,0x28,0x21,0x5f, - 0x36,0x33,0x33,0x29,0x29,0x20,0x26,0x26,0x20,0x28,0x21,0x5f,0x36,0x36,0x30,0x29, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20, - 0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20,0x69, - 0x6e,0x2e,0x76,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x20, - 0x3d,0x20,0x64,0x20,0x2d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x72,0x61,0x64,0x69,0x75, - 0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x34,0x20,0x5f,0x37,0x39,0x38,0x20,0x3d,0x20,0x73,0x64,0x66,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x2c,0x20,0x69,0x6e,0x2e,0x76,0x5f, - 0x73,0x74,0x72,0x6f,0x6b,0x65,0x2c,0x20,0x5f,0x32,0x38,0x32,0x2c,0x20,0x69,0x6e, - 0x2e,0x76,0x5f,0x61,0x61,0x2c,0x20,0x6f,0x75,0x74,0x2e,0x72,0x65,0x73,0x75,0x6c, - 0x74,0x2c,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x37,0x38,0x36,0x20,0x3d,0x20,0x5f,0x37, - 0x39,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c, - 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x37,0x38,0x36,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x38,0x30,0x35, - 0x20,0x3d,0x20,0x5f,0x37,0x38,0x36,0x20,0x2a,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x61, - 0x6c,0x70,0x68,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x38, - 0x30,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x5f,0x38,0x30,0x35,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x34,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x35,0x20,0x3d,0x20,0x28,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x48, - 0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x2e,0x30,0x29,0x29,0x20, - 0x2a,0x20,0x30,0x2e,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x20,0x3d,0x20,0x69,0x6e,0x2e, - 0x76,0x5f,0x75,0x73,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x34,0x20,0x5f,0x38,0x32,0x31,0x20,0x3d,0x20,0x73,0x68,0x61,0x64,0x65,0x72, - 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x2c,0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74, - 0x65,0x78,0x2c,0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70, - 0x6c,0x72,0x2c,0x20,0x5f,0x35,0x37,0x32,0x2c,0x20,0x77,0x61,0x74,0x65,0x72,0x5f, - 0x74,0x65,0x78,0x2c,0x20,0x77,0x61,0x74,0x65,0x72,0x5f,0x74,0x65,0x78,0x53,0x6d, - 0x70,0x6c,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x38, - 0x32,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x38,0x32,0x31, - 0x2e,0x77,0x20,0x3d,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x61,0x72,0x64, - 0x5f,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x72,0x65,0x73,0x75,0x6c, - 0x74,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, - 0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, + 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, + 0x37,0x34,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x36,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d, + 0x20,0x69,0x6e,0x2e,0x76,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f, + 0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x39,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x20,0x3d, + 0x20,0x64,0x69,0x73,0x74,0x61,0x6e,0x63,0x65,0x5f,0x74,0x72,0x69,0x61,0x6e,0x67, + 0x6c,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x34,0x20,0x5f,0x38,0x36,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x66,0x20,0x28,0x28,0x28,0x21,0x5f,0x36,0x39,0x35,0x29,0x20,0x26,0x26,0x20,0x28, + 0x21,0x5f,0x37,0x30,0x34,0x29,0x29,0x20,0x26,0x26,0x20,0x28,0x21,0x5f,0x37,0x33, + 0x31,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x30,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d, + 0x20,0x69,0x6e,0x2e,0x76,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x32,0x20,0x3d,0x20,0x64,0x20,0x2d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x72,0x61,0x64, + 0x69,0x75,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x34,0x20,0x5f,0x38,0x37,0x32,0x20,0x3d,0x20,0x73,0x64,0x66,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x2c,0x20,0x69,0x6e,0x2e, + 0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2c,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x61, + 0x61,0x2c,0x20,0x6f,0x75,0x74,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69, + 0x6e,0x2e,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x5f,0x38,0x36,0x30,0x20,0x3d,0x20,0x5f,0x38,0x37,0x32,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x38,0x36, + 0x30,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x38,0x37,0x39,0x20,0x3d,0x20,0x5f, + 0x38,0x36,0x30,0x20,0x2a,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x38,0x37,0x39,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x32,0x33,0x20,0x3d,0x20,0x5f,0x38,0x37,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20, + 0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x20, + 0x3d,0x20,0x28,0x28,0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x48,0x20,0x2b,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x30, + 0x2e,0x35,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x2e,0x30, + 0x2c,0x20,0x2d,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x20,0x3d,0x20,0x69, + 0x6e,0x2e,0x76,0x5f,0x75,0x73,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x34,0x20,0x5f,0x38,0x39,0x37,0x20,0x3d,0x20,0x73,0x68,0x61,0x64, + 0x65,0x72,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x32,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x2c,0x20,0x6e,0x6f,0x69,0x73,0x65, + 0x5f,0x74,0x65,0x78,0x2c,0x20,0x6e,0x6f,0x69,0x73,0x65,0x5f,0x74,0x65,0x78,0x53, + 0x6d,0x70,0x6c,0x72,0x2c,0x20,0x77,0x61,0x76,0x65,0x6c,0x65,0x74,0x73,0x5f,0x74, + 0x65,0x78,0x2c,0x20,0x77,0x61,0x76,0x65,0x6c,0x65,0x74,0x73,0x5f,0x74,0x65,0x78, + 0x53,0x6d,0x70,0x6c,0x72,0x2c,0x20,0x73,0x63,0x65,0x6e,0x65,0x5f,0x74,0x65,0x78, + 0x2c,0x20,0x73,0x63,0x65,0x6e,0x65,0x5f,0x74,0x65,0x78,0x53,0x6d,0x70,0x6c,0x72, + 0x2c,0x20,0x5f,0x36,0x35,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d, + 0x20,0x5f,0x38,0x39,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, + 0x38,0x39,0x37,0x2e,0x77,0x20,0x3d,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63, + 0x61,0x72,0x64,0x5f,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x72,0x65, + 0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, + 0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, }; #if !defined(SOKOL_GFX_INCLUDED) #error "Please include sokol_gfx.h before shallow_water_shader.h" @@ -7465,31 +8027,35 @@ static inline const sg_shader_desc* shallow_water_shader_shader_desc(sg_backend desc.attrs[6].name = "in_col"; desc.attrs[7].name = "in_radius"; desc.attrs[8].name = "in_stroke"; - desc.attrs[9].name = "in_params"; - desc.attrs[10].name = "in_user_params"; + desc.attrs[9].name = "in_aa"; + desc.attrs[10].name = "in_params"; + desc.attrs[11].name = "in_user_params"; desc.vs.source = shallow_water_vs_source_glsl330; desc.vs.entry = "main"; desc.fs.source = shallow_water_fs_source_glsl330; desc.fs.entry = "main"; desc.fs.uniform_blocks[0].size = 16; desc.fs.uniform_blocks[0].layout = SG_UNIFORMLAYOUT_STD140; - desc.fs.uniform_blocks[0].uniforms[0].name = "fs_params"; + desc.fs.uniform_blocks[0].uniforms[0].name = "shader_uniforms"; desc.fs.uniform_blocks[0].uniforms[0].type = SG_UNIFORMTYPE_FLOAT4; desc.fs.uniform_blocks[0].uniforms[0].array_count = 1; desc.fs.uniform_blocks[1].size = 16; desc.fs.uniform_blocks[1].layout = SG_UNIFORMLAYOUT_STD140; - desc.fs.uniform_blocks[1].uniforms[0].name = "shader_uniforms"; + desc.fs.uniform_blocks[1].uniforms[0].name = "fs_params"; desc.fs.uniform_blocks[1].uniforms[0].type = SG_UNIFORMTYPE_FLOAT4; desc.fs.uniform_blocks[1].uniforms[0].array_count = 1; desc.fs.images[0].name = "noise_tex"; desc.fs.images[0].image_type = SG_IMAGETYPE_2D; desc.fs.images[0].sampler_type = SG_SAMPLERTYPE_FLOAT; - desc.fs.images[1].name = "water_tex"; + desc.fs.images[1].name = "wavelets_tex"; desc.fs.images[1].image_type = SG_IMAGETYPE_2D; desc.fs.images[1].sampler_type = SG_SAMPLERTYPE_FLOAT; - desc.fs.images[2].name = "u_image"; + desc.fs.images[2].name = "scene_tex"; desc.fs.images[2].image_type = SG_IMAGETYPE_2D; desc.fs.images[2].sampler_type = SG_SAMPLERTYPE_FLOAT; + desc.fs.images[3].name = "u_image"; + desc.fs.images[3].image_type = SG_IMAGETYPE_2D; + desc.fs.images[3].sampler_type = SG_SAMPLERTYPE_FLOAT; desc.label = "shallow_water_shader_shader"; } return &desc; @@ -7508,31 +8074,35 @@ static inline const sg_shader_desc* shallow_water_shader_shader_desc(sg_backend desc.attrs[6].name = "in_col"; desc.attrs[7].name = "in_radius"; desc.attrs[8].name = "in_stroke"; - desc.attrs[9].name = "in_params"; - desc.attrs[10].name = "in_user_params"; + desc.attrs[9].name = "in_aa"; + desc.attrs[10].name = "in_params"; + desc.attrs[11].name = "in_user_params"; desc.vs.source = shallow_water_vs_source_glsl300es; desc.vs.entry = "main"; desc.fs.source = shallow_water_fs_source_glsl300es; desc.fs.entry = "main"; desc.fs.uniform_blocks[0].size = 16; desc.fs.uniform_blocks[0].layout = SG_UNIFORMLAYOUT_STD140; - desc.fs.uniform_blocks[0].uniforms[0].name = "fs_params"; + desc.fs.uniform_blocks[0].uniforms[0].name = "shader_uniforms"; desc.fs.uniform_blocks[0].uniforms[0].type = SG_UNIFORMTYPE_FLOAT4; desc.fs.uniform_blocks[0].uniforms[0].array_count = 1; desc.fs.uniform_blocks[1].size = 16; desc.fs.uniform_blocks[1].layout = SG_UNIFORMLAYOUT_STD140; - desc.fs.uniform_blocks[1].uniforms[0].name = "shader_uniforms"; + desc.fs.uniform_blocks[1].uniforms[0].name = "fs_params"; desc.fs.uniform_blocks[1].uniforms[0].type = SG_UNIFORMTYPE_FLOAT4; desc.fs.uniform_blocks[1].uniforms[0].array_count = 1; desc.fs.images[0].name = "noise_tex"; desc.fs.images[0].image_type = SG_IMAGETYPE_2D; desc.fs.images[0].sampler_type = SG_SAMPLERTYPE_FLOAT; - desc.fs.images[1].name = "water_tex"; + desc.fs.images[1].name = "wavelets_tex"; desc.fs.images[1].image_type = SG_IMAGETYPE_2D; desc.fs.images[1].sampler_type = SG_SAMPLERTYPE_FLOAT; - desc.fs.images[2].name = "u_image"; + desc.fs.images[2].name = "scene_tex"; desc.fs.images[2].image_type = SG_IMAGETYPE_2D; desc.fs.images[2].sampler_type = SG_SAMPLERTYPE_FLOAT; + desc.fs.images[3].name = "u_image"; + desc.fs.images[3].image_type = SG_IMAGETYPE_2D; + desc.fs.images[3].sampler_type = SG_SAMPLERTYPE_FLOAT; desc.label = "shallow_water_shader_shader"; } return &desc; @@ -7564,6 +8134,8 @@ static inline const sg_shader_desc* shallow_water_shader_shader_desc(sg_backend desc.attrs[9].sem_index = 9; desc.attrs[10].sem_name = "TEXCOORD"; desc.attrs[10].sem_index = 10; + desc.attrs[11].sem_name = "TEXCOORD"; + desc.attrs[11].sem_index = 11; desc.vs.source = shallow_water_vs_source_hlsl5; desc.vs.d3d11_target = "vs_5_0"; desc.vs.entry = "main"; @@ -7577,12 +8149,15 @@ static inline const sg_shader_desc* shallow_water_shader_shader_desc(sg_backend desc.fs.images[0].name = "noise_tex"; desc.fs.images[0].image_type = SG_IMAGETYPE_2D; desc.fs.images[0].sampler_type = SG_SAMPLERTYPE_FLOAT; - desc.fs.images[1].name = "water_tex"; + desc.fs.images[1].name = "wavelets_tex"; desc.fs.images[1].image_type = SG_IMAGETYPE_2D; desc.fs.images[1].sampler_type = SG_SAMPLERTYPE_FLOAT; - desc.fs.images[2].name = "u_image"; + desc.fs.images[2].name = "scene_tex"; desc.fs.images[2].image_type = SG_IMAGETYPE_2D; desc.fs.images[2].sampler_type = SG_SAMPLERTYPE_FLOAT; + desc.fs.images[3].name = "u_image"; + desc.fs.images[3].image_type = SG_IMAGETYPE_2D; + desc.fs.images[3].sampler_type = SG_SAMPLERTYPE_FLOAT; desc.label = "shallow_water_shader_shader"; } return &desc; @@ -7603,12 +8178,15 @@ static inline const sg_shader_desc* shallow_water_shader_shader_desc(sg_backend desc.fs.images[0].name = "noise_tex"; desc.fs.images[0].image_type = SG_IMAGETYPE_2D; desc.fs.images[0].sampler_type = SG_SAMPLERTYPE_FLOAT; - desc.fs.images[1].name = "water_tex"; + desc.fs.images[1].name = "wavelets_tex"; desc.fs.images[1].image_type = SG_IMAGETYPE_2D; desc.fs.images[1].sampler_type = SG_SAMPLERTYPE_FLOAT; - desc.fs.images[2].name = "u_image"; + desc.fs.images[2].name = "scene_tex"; desc.fs.images[2].image_type = SG_IMAGETYPE_2D; desc.fs.images[2].sampler_type = SG_SAMPLERTYPE_FLOAT; + desc.fs.images[3].name = "u_image"; + desc.fs.images[3].image_type = SG_IMAGETYPE_2D; + desc.fs.images[3].sampler_type = SG_SAMPLERTYPE_FLOAT; desc.label = "shallow_water_shader_shader"; } return &desc; @@ -7629,12 +8207,15 @@ static inline const sg_shader_desc* shallow_water_shader_shader_desc(sg_backend desc.fs.images[0].name = "noise_tex"; desc.fs.images[0].image_type = SG_IMAGETYPE_2D; desc.fs.images[0].sampler_type = SG_SAMPLERTYPE_FLOAT; - desc.fs.images[1].name = "water_tex"; + desc.fs.images[1].name = "wavelets_tex"; desc.fs.images[1].image_type = SG_IMAGETYPE_2D; desc.fs.images[1].sampler_type = SG_SAMPLERTYPE_FLOAT; - desc.fs.images[2].name = "u_image"; + desc.fs.images[2].name = "scene_tex"; desc.fs.images[2].image_type = SG_IMAGETYPE_2D; desc.fs.images[2].sampler_type = SG_SAMPLERTYPE_FLOAT; + desc.fs.images[3].name = "u_image"; + desc.fs.images[3].image_type = SG_IMAGETYPE_2D; + desc.fs.images[3].sampler_type = SG_SAMPLERTYPE_FLOAT; desc.label = "shallow_water_shader_shader"; } return &desc; @@ -7655,12 +8236,15 @@ static inline const sg_shader_desc* shallow_water_shader_shader_desc(sg_backend desc.fs.images[0].name = "noise_tex"; desc.fs.images[0].image_type = SG_IMAGETYPE_2D; desc.fs.images[0].sampler_type = SG_SAMPLERTYPE_FLOAT; - desc.fs.images[1].name = "water_tex"; + desc.fs.images[1].name = "wavelets_tex"; desc.fs.images[1].image_type = SG_IMAGETYPE_2D; desc.fs.images[1].sampler_type = SG_SAMPLERTYPE_FLOAT; - desc.fs.images[2].name = "u_image"; + desc.fs.images[2].name = "scene_tex"; desc.fs.images[2].image_type = SG_IMAGETYPE_2D; desc.fs.images[2].sampler_type = SG_SAMPLERTYPE_FLOAT; + desc.fs.images[3].name = "u_image"; + desc.fs.images[3].image_type = SG_IMAGETYPE_2D; + desc.fs.images[3].sampler_type = SG_SAMPLERTYPE_FLOAT; desc.label = "shallow_water_shader_shader"; } return &desc; @@ -7696,12 +8280,15 @@ static inline int shallow_water_shader_attr_slot(const char* attr_name) { if (0 == strcmp(attr_name, "in_stroke")) { return 8; } - if (0 == strcmp(attr_name, "in_params")) { + if (0 == strcmp(attr_name, "in_aa")) { return 9; } - if (0 == strcmp(attr_name, "in_user_params")) { + if (0 == strcmp(attr_name, "in_params")) { return 10; } + if (0 == strcmp(attr_name, "in_user_params")) { + return 11; + } return -1; } static inline int shallow_water_shader_image_slot(sg_shader_stage stage, const char* img_name) { @@ -7710,22 +8297,25 @@ static inline int shallow_water_shader_image_slot(sg_shader_stage stage, const c if (0 == strcmp(img_name, "noise_tex")) { return 0; } - if (0 == strcmp(img_name, "water_tex")) { + if (0 == strcmp(img_name, "wavelets_tex")) { return 1; } - if (0 == strcmp(img_name, "u_image")) { + if (0 == strcmp(img_name, "scene_tex")) { return 2; } + if (0 == strcmp(img_name, "u_image")) { + return 3; + } } return -1; } static inline int shallow_water_shader_uniformblock_slot(sg_shader_stage stage, const char* ub_name) { (void)stage; (void)ub_name; if (SG_SHADERSTAGE_FS == stage) { - if (0 == strcmp(ub_name, "fs_params")) { + if (0 == strcmp(ub_name, "shader_uniforms")) { return 0; } - if (0 == strcmp(ub_name, "shader_uniforms")) { + if (0 == strcmp(ub_name, "fs_params")) { return 1; } } @@ -7734,38 +8324,29 @@ static inline int shallow_water_shader_uniformblock_slot(sg_shader_stage stage, static inline size_t shallow_water_shader_uniformblock_size(sg_shader_stage stage, const char* ub_name) { (void)stage; (void)ub_name; if (SG_SHADERSTAGE_FS == stage) { - if (0 == strcmp(ub_name, "fs_params")) { - return sizeof(shallow_water_fs_params_t); - } if (0 == strcmp(ub_name, "shader_uniforms")) { return sizeof(shallow_water_shader_uniforms_t); } + if (0 == strcmp(ub_name, "fs_params")) { + return sizeof(shallow_water_fs_params_t); + } } return 0; } static inline int shallow_water_shader_uniform_offset(sg_shader_stage stage, const char* ub_name, const char* u_name) { (void)stage; (void)ub_name; (void)u_name; if (SG_SHADERSTAGE_FS == stage) { - if (0 == strcmp(ub_name, "fs_params")) { - if (0 == strcmp(u_name, "u_texture_size")) { - return 0; - } - if (0 == strcmp(u_name, "u_aaf")) { - return 8; - } - if (0 == strcmp(u_name, "u_aa_scale")) { - return 12; - } - } if (0 == strcmp(ub_name, "shader_uniforms")) { - if (0 == strcmp(u_name, "amplitude")) { + if (0 == strcmp(u_name, "show_normals")) { return 0; } - if (0 == strcmp(u_name, "time")) { + if (0 == strcmp(u_name, "show_noise")) { return 4; } - if (0 == strcmp(u_name, "show_noise")) { - return 8; + } + if (0 == strcmp(ub_name, "fs_params")) { + if (0 == strcmp(u_name, "u_texture_size")) { + return 0; } } } @@ -7779,42 +8360,24 @@ static inline sg_shader_uniform_desc shallow_water_shader_uniform_desc(sg_shader sg_shader_uniform_desc desc = {0}; #endif if (SG_SHADERSTAGE_FS == stage) { - if (0 == strcmp(ub_name, "fs_params")) { - if (0 == strcmp(u_name, "u_texture_size")) { - desc.name = "u_texture_size"; - desc.type = SG_UNIFORMTYPE_FLOAT2; - desc.array_count = 1; - return desc; - } - if (0 == strcmp(u_name, "u_aaf")) { - desc.name = "u_aaf"; - desc.type = SG_UNIFORMTYPE_FLOAT; - desc.array_count = 1; - return desc; - } - if (0 == strcmp(u_name, "u_aa_scale")) { - desc.name = "u_aa_scale"; - desc.type = SG_UNIFORMTYPE_FLOAT; - desc.array_count = 1; - return desc; - } - } if (0 == strcmp(ub_name, "shader_uniforms")) { - if (0 == strcmp(u_name, "amplitude")) { - desc.name = "amplitude"; + if (0 == strcmp(u_name, "show_normals")) { + desc.name = "show_normals"; desc.type = SG_UNIFORMTYPE_FLOAT; desc.array_count = 1; return desc; } - if (0 == strcmp(u_name, "time")) { - desc.name = "time"; + if (0 == strcmp(u_name, "show_noise")) { + desc.name = "show_noise"; desc.type = SG_UNIFORMTYPE_FLOAT; desc.array_count = 1; return desc; } - if (0 == strcmp(u_name, "show_noise")) { - desc.name = "show_noise"; - desc.type = SG_UNIFORMTYPE_FLOAT; + } + if (0 == strcmp(ub_name, "fs_params")) { + if (0 == strcmp(u_name, "u_texture_size")) { + desc.name = "u_texture_size"; + desc.type = SG_UNIFORMTYPE_FLOAT2; desc.array_count = 1; return desc; } diff --git a/src/shaders/sprite_shader.h b/src/shaders/sprite_shader.h index 3d829d013..130b0a24c 100644 --- a/src/shaders/sprite_shader.h +++ b/src/shaders/sprite_shader.h @@ -563,11 +563,11 @@ static const char sprite_vs_source_glsl330[1111] = { c = _743; vec4 param_23 = _743; vec2 param_24 = v_pos; - vec2 param_25 = (v_posH + vec2(1.0)) * 0.5; + vec2 param_25 = ((v_posH + vec2(1.0)) * 0.5) * vec2(1.0, -1.0); vec4 param_26 = v_user; - vec4 _759 = shader(param_23, param_24, param_25, param_26); - c = _759; - if (_759.w == 0.0) + vec4 _761 = shader(param_23, param_24, param_25, param_26); + c = _761; + if (_761.w == 0.0) { discard; } @@ -575,7 +575,7 @@ static const char sprite_vs_source_glsl330[1111] = { } */ -static const char sprite_fs_source_glsl330[7845] = { +static const char sprite_fs_source_glsl330[7865] = { 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x33,0x30,0x0a,0x0a,0x75,0x6e, 0x69,0x66,0x6f,0x72,0x6d,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x73,0x5f,0x70,0x61, 0x72,0x61,0x6d,0x73,0x5b,0x31,0x5d,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d, @@ -1053,20 +1053,21 @@ static const char sprite_fs_source_glsl330[7845] = { 0x3d,0x20,0x5f,0x37,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x76,0x5f,0x70,0x6f, 0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x35,0x20,0x3d,0x20,0x28,0x76,0x5f,0x70,0x6f,0x73,0x48,0x20,0x2b, - 0x20,0x76,0x65,0x63,0x32,0x28,0x31,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e, - 0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x36,0x20,0x3d,0x20,0x76,0x5f,0x75,0x73,0x65,0x72,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x37,0x35,0x39,0x20,0x3d,0x20,0x73, - 0x68,0x61,0x64,0x65,0x72,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x32,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x37,0x35,0x39,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x35,0x39,0x2e,0x77,0x20,0x3d,0x3d,0x20,0x30, - 0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x63,0x3b, - 0x0a,0x7d,0x0a,0x0a,0x00, + 0x6d,0x5f,0x32,0x35,0x20,0x3d,0x20,0x28,0x28,0x76,0x5f,0x70,0x6f,0x73,0x48,0x20, + 0x2b,0x20,0x76,0x65,0x63,0x32,0x28,0x31,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x30, + 0x2e,0x35,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x32,0x28,0x31,0x2e,0x30,0x2c,0x20, + 0x2d,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x20,0x3d,0x20,0x76,0x5f,0x75,0x73,0x65, + 0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x37,0x36,0x31, + 0x20,0x3d,0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x2c,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x37,0x36,0x31,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x36,0x31,0x2e,0x77,0x20, + 0x3d,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20, + 0x3d,0x20,0x63,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, }; /* #version 300 es @@ -1531,11 +1532,11 @@ static const char sprite_vs_source_glsl300es[1114] = { c = _743; highp vec4 param_23 = _743; highp vec2 param_24 = v_pos; - highp vec2 param_25 = (v_posH + vec2(1.0)) * 0.5; + highp vec2 param_25 = ((v_posH + vec2(1.0)) * 0.5) * vec2(1.0, -1.0); highp vec4 param_26 = v_user; - highp vec4 _759 = shader(param_23, param_24, param_25, param_26); - c = _759; - if (_759.w == 0.0) + highp vec4 _761 = shader(param_23, param_24, param_25, param_26); + c = _761; + if (_761.w == 0.0) { discard; } @@ -1543,7 +1544,7 @@ static const char sprite_vs_source_glsl300es[1114] = { } */ -static const char sprite_fs_source_glsl300es[8848] = { +static const char sprite_fs_source_glsl300es[8868] = { 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x33,0x30,0x30,0x20,0x65,0x73,0x0a, 0x70,0x72,0x65,0x63,0x69,0x73,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x64,0x69,0x75,0x6d, 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x3b,0x0a,0x70,0x72,0x65,0x63,0x69,0x73,0x69, @@ -2083,21 +2084,22 @@ static const char sprite_fs_source_glsl300es[8848] = { 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, 0x32,0x34,0x20,0x3d,0x20,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x35,0x20,0x3d,0x20,0x28,0x76,0x5f,0x70,0x6f,0x73,0x48,0x20,0x2b,0x20, - 0x76,0x65,0x63,0x32,0x28,0x31,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x20,0x3d,0x20,0x76,0x5f,0x75,0x73, - 0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x34,0x20,0x5f,0x37,0x35,0x39,0x20,0x3d,0x20,0x73,0x68,0x61,0x64,0x65,0x72, - 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x20, - 0x3d,0x20,0x5f,0x37,0x35,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x5f,0x37,0x35,0x39,0x2e,0x77,0x20,0x3d,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73, - 0x63,0x61,0x72,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, - + 0x5f,0x32,0x35,0x20,0x3d,0x20,0x28,0x28,0x76,0x5f,0x70,0x6f,0x73,0x48,0x20,0x2b, + 0x20,0x76,0x65,0x63,0x32,0x28,0x31,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e, + 0x35,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x32,0x28,0x31,0x2e,0x30,0x2c,0x20,0x2d, + 0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x20,0x3d,0x20, + 0x76,0x5f,0x75,0x73,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x37,0x36,0x31,0x20,0x3d,0x20,0x73,0x68, + 0x61,0x64,0x65,0x72,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x37,0x36,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x37,0x36,0x31,0x2e,0x77,0x20,0x3d,0x3d,0x20,0x30,0x2e, + 0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x63,0x3b,0x0a, + 0x7d,0x0a,0x0a,0x00, }; /* static float4 gl_Position; @@ -2765,11 +2767,11 @@ static const char sprite_vs_source_hlsl5[2925] = { c = _743; float4 param_23 = _743; float2 param_24 = v_pos; - float2 param_25 = (v_posH + 1.0f.xx) * 0.5f; + float2 param_25 = ((v_posH + 1.0f.xx) * 0.5f) * float2(1.0f, -1.0f); float4 param_26 = v_user; - float4 _759 = shader(param_23, param_24, param_25, param_26); - c = _759; - if (_759.w == 0.0f) + float4 _761 = shader(param_23, param_24, param_25, param_26); + c = _761; + if (_761.w == 0.0f) { discard; } @@ -2798,7 +2800,7 @@ static const char sprite_vs_source_hlsl5[2925] = { return stage_output; } */ -static const char sprite_fs_source_hlsl5[9430] = { +static const char sprite_fs_source_hlsl5[9454] = { 0x63,0x62,0x75,0x66,0x66,0x65,0x72,0x20,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d, 0x73,0x20,0x3a,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x28,0x62,0x30,0x29, 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x36, @@ -3336,59 +3338,60 @@ static const char sprite_fs_source_hlsl5[9430] = { 0x32,0x33,0x20,0x3d,0x20,0x5f,0x37,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d, 0x20,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x20,0x3d,0x20,0x28,0x76, - 0x5f,0x70,0x6f,0x73,0x48,0x20,0x2b,0x20,0x31,0x2e,0x30,0x66,0x2e,0x78,0x78,0x29, - 0x20,0x2a,0x20,0x30,0x2e,0x35,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x20,0x3d,0x20,0x76, - 0x5f,0x75,0x73,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x34,0x20,0x5f,0x37,0x35,0x39,0x20,0x3d,0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x28, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x32,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x32,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d, - 0x20,0x5f,0x37,0x35,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, - 0x37,0x35,0x39,0x2e,0x77,0x20,0x3d,0x3d,0x20,0x30,0x2e,0x30,0x66,0x29,0x0a,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73, - 0x63,0x61,0x72,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x7d,0x0a,0x0a,0x53, + 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x20,0x3d,0x20,0x28,0x28, + 0x76,0x5f,0x70,0x6f,0x73,0x48,0x20,0x2b,0x20,0x31,0x2e,0x30,0x66,0x2e,0x78,0x78, + 0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x66,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x28,0x31,0x2e,0x30,0x66,0x2c,0x20,0x2d,0x31,0x2e,0x30,0x66,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x32,0x36,0x20,0x3d,0x20,0x76,0x5f,0x75,0x73,0x65,0x72,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x37,0x36,0x31,0x20,0x3d, + 0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x32,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x37,0x36,0x31,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x36,0x31,0x2e,0x77,0x20,0x3d,0x3d, + 0x20,0x30,0x2e,0x30,0x66,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d, + 0x20,0x63,0x3b,0x0a,0x7d,0x0a,0x0a,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f, + 0x73,0x73,0x5f,0x4f,0x75,0x74,0x70,0x75,0x74,0x20,0x6d,0x61,0x69,0x6e,0x28,0x53, + 0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x49,0x6e,0x70,0x75,0x74, + 0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x29,0x0a,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x20,0x3d,0x20,0x73, + 0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x73,0x74,0x72, + 0x6f,0x6b,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x61,0x61,0x20,0x3d,0x20, + 0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x61,0x61, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x20,0x3d,0x20,0x73, + 0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x66,0x69,0x6c, + 0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x74,0x79,0x70,0x65,0x20,0x3d,0x20, + 0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x74,0x79, + 0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x75,0x76,0x20,0x3d,0x20,0x73, + 0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x75,0x76,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x63,0x6f,0x6c,0x20,0x3d,0x20,0x73,0x74,0x61, + 0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x63,0x6f,0x6c,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x76,0x5f,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x67, + 0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x76,0x5f,0x61,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69, + 0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f, + 0x62,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e, + 0x76,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x63,0x20,0x3d,0x20,0x73, + 0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x63,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x76,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x20,0x3d,0x20,0x73, + 0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x72,0x61,0x64, + 0x69,0x75,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61, + 0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76, + 0x5f,0x61,0x6c,0x70,0x68,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x70,0x6f, + 0x73,0x48,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74, + 0x2e,0x76,0x5f,0x70,0x6f,0x73,0x48,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x75, + 0x73,0x65,0x72,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75, + 0x74,0x2e,0x76,0x5f,0x75,0x73,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72, + 0x61,0x67,0x5f,0x6d,0x61,0x69,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x53, 0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x4f,0x75,0x74,0x70,0x75, - 0x74,0x20,0x6d,0x61,0x69,0x6e,0x28,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f, - 0x73,0x73,0x5f,0x49,0x6e,0x70,0x75,0x74,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69, - 0x6e,0x70,0x75,0x74,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x73,0x74, - 0x72,0x6f,0x6b,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70, - 0x75,0x74,0x2e,0x76,0x5f,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x76,0x5f,0x61,0x61,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e, - 0x70,0x75,0x74,0x2e,0x76,0x5f,0x61,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f, - 0x66,0x69,0x6c,0x6c,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70, - 0x75,0x74,0x2e,0x76,0x5f,0x66,0x69,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, - 0x5f,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e, - 0x70,0x75,0x74,0x2e,0x76,0x5f,0x74,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x76,0x5f,0x75,0x76,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70, - 0x75,0x74,0x2e,0x76,0x5f,0x75,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x63, - 0x6f,0x6c,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74, - 0x2e,0x76,0x5f,0x63,0x6f,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x70,0x6f, - 0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e, - 0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x61,0x20,0x3d, - 0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x61, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x62,0x20,0x3d,0x20,0x73,0x74,0x61,0x67, - 0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x76,0x5f,0x63,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70, - 0x75,0x74,0x2e,0x76,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x72,0x61, - 0x64,0x69,0x75,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x70, - 0x75,0x74,0x2e,0x76,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x20,0x3d,0x20,0x73,0x74,0x61,0x67,0x65, - 0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x61,0x6c,0x70,0x68,0x61,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x76,0x5f,0x70,0x6f,0x73,0x48,0x20,0x3d,0x20,0x73,0x74,0x61, - 0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x48,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x76,0x5f,0x75,0x73,0x65,0x72,0x20,0x3d,0x20,0x73,0x74, - 0x61,0x67,0x65,0x5f,0x69,0x6e,0x70,0x75,0x74,0x2e,0x76,0x5f,0x75,0x73,0x65,0x72, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x6d,0x61,0x69,0x6e,0x28, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f, - 0x73,0x73,0x5f,0x4f,0x75,0x74,0x70,0x75,0x74,0x20,0x73,0x74,0x61,0x67,0x65,0x5f, - 0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67, - 0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x20, - 0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, - 0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75, - 0x74,0x3b,0x0a,0x7d,0x0a,0x00, + 0x74,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74, + 0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x61, + 0x67,0x65,0x5f,0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x00, }; /* #include @@ -3925,11 +3928,11 @@ static const char sprite_vs_source_metal_macos[1624] = { c = _743; float4 param_23 = _743; float2 param_24 = in.v_pos; - float2 param_25 = (in.v_posH + float2(1.0)) * 0.5; + float2 param_25 = ((in.v_posH + float2(1.0)) * 0.5) * float2(1.0, -1.0); float4 param_26 = in.v_user; - float4 _759 = shader(param_23, param_24, param_25, param_26); - c = _759; - if (_759.w == 0.0) + float4 _761 = shader(param_23, param_24, param_25, param_26); + c = _761; + if (_761.w == 0.0) { discard_fragment(); } @@ -3938,7 +3941,7 @@ static const char sprite_vs_source_metal_macos[1624] = { } */ -static const char sprite_fs_source_metal_macos[10151] = { +static const char sprite_fs_source_metal_macos[10173] = { 0x23,0x70,0x72,0x61,0x67,0x6d,0x61,0x20,0x63,0x6c,0x61,0x6e,0x67,0x20,0x64,0x69, 0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x64, 0x20,0x22,0x2d,0x57,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x2d,0x70,0x72,0x6f,0x74, @@ -4557,23 +4560,24 @@ static const char sprite_fs_source_metal_macos[10151] = { 0x3d,0x20,0x5f,0x37,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x69,0x6e, 0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x20,0x3d,0x20,0x28,0x69, - 0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x48,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x32,0x28,0x31,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x32,0x36,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x75,0x73,0x65,0x72,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x37,0x35,0x39,0x20, - 0x3d,0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, - 0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x37,0x35,0x39,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x35,0x39,0x2e,0x77,0x20,0x3d, - 0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x5f,0x66,0x72,0x61, - 0x67,0x6d,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20, - 0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75, - 0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, + 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x20,0x3d,0x20,0x28,0x28, + 0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x48,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x28,0x31,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20, + 0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x2e,0x30,0x2c,0x20,0x2d,0x31, + 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f, + 0x75,0x73,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, + 0x20,0x5f,0x37,0x36,0x31,0x20,0x3d,0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x32,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20, + 0x5f,0x37,0x36,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37, + 0x36,0x31,0x2e,0x77,0x20,0x3d,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x61, + 0x72,0x64,0x5f,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x72,0x65,0x73, + 0x75,0x6c,0x74,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, + 0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, }; /* #include @@ -5110,11 +5114,11 @@ static const char sprite_vs_source_metal_ios[1624] = { c = _743; float4 param_23 = _743; float2 param_24 = in.v_pos; - float2 param_25 = (in.v_posH + float2(1.0)) * 0.5; + float2 param_25 = ((in.v_posH + float2(1.0)) * 0.5) * float2(1.0, -1.0); float4 param_26 = in.v_user; - float4 _759 = shader(param_23, param_24, param_25, param_26); - c = _759; - if (_759.w == 0.0) + float4 _761 = shader(param_23, param_24, param_25, param_26); + c = _761; + if (_761.w == 0.0) { discard_fragment(); } @@ -5123,7 +5127,7 @@ static const char sprite_vs_source_metal_ios[1624] = { } */ -static const char sprite_fs_source_metal_ios[10151] = { +static const char sprite_fs_source_metal_ios[10173] = { 0x23,0x70,0x72,0x61,0x67,0x6d,0x61,0x20,0x63,0x6c,0x61,0x6e,0x67,0x20,0x64,0x69, 0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x64, 0x20,0x22,0x2d,0x57,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x2d,0x70,0x72,0x6f,0x74, @@ -5742,23 +5746,24 @@ static const char sprite_fs_source_metal_ios[10151] = { 0x3d,0x20,0x5f,0x37,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x69,0x6e, 0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x20,0x3d,0x20,0x28,0x69, - 0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x48,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x32,0x28,0x31,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x32,0x36,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x75,0x73,0x65,0x72,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x37,0x35,0x39,0x20, - 0x3d,0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, - 0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x37,0x35,0x39,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x35,0x39,0x2e,0x77,0x20,0x3d, - 0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x5f,0x66,0x72,0x61, - 0x67,0x6d,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20, - 0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75, - 0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, + 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x20,0x3d,0x20,0x28,0x28, + 0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x48,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x28,0x31,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20, + 0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x2e,0x30,0x2c,0x20,0x2d,0x31, + 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f, + 0x75,0x73,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, + 0x20,0x5f,0x37,0x36,0x31,0x20,0x3d,0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x32,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20, + 0x5f,0x37,0x36,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37, + 0x36,0x31,0x2e,0x77,0x20,0x3d,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x61, + 0x72,0x64,0x5f,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x72,0x65,0x73, + 0x75,0x6c,0x74,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, + 0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, }; /* #include @@ -6295,11 +6300,11 @@ static const char sprite_vs_source_metal_sim[1624] = { c = _743; float4 param_23 = _743; float2 param_24 = in.v_pos; - float2 param_25 = (in.v_posH + float2(1.0)) * 0.5; + float2 param_25 = ((in.v_posH + float2(1.0)) * 0.5) * float2(1.0, -1.0); float4 param_26 = in.v_user; - float4 _759 = shader(param_23, param_24, param_25, param_26); - c = _759; - if (_759.w == 0.0) + float4 _761 = shader(param_23, param_24, param_25, param_26); + c = _761; + if (_761.w == 0.0) { discard_fragment(); } @@ -6308,7 +6313,7 @@ static const char sprite_vs_source_metal_sim[1624] = { } */ -static const char sprite_fs_source_metal_sim[10151] = { +static const char sprite_fs_source_metal_sim[10173] = { 0x23,0x70,0x72,0x61,0x67,0x6d,0x61,0x20,0x63,0x6c,0x61,0x6e,0x67,0x20,0x64,0x69, 0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x64, 0x20,0x22,0x2d,0x57,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x2d,0x70,0x72,0x6f,0x74, @@ -6927,23 +6932,24 @@ static const char sprite_fs_source_metal_sim[10151] = { 0x3d,0x20,0x5f,0x37,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x69,0x6e, 0x2e,0x76,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x20,0x3d,0x20,0x28,0x69, - 0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x48,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x32,0x28,0x31,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x32,0x36,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f,0x75,0x73,0x65,0x72,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x37,0x35,0x39,0x20, - 0x3d,0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, - 0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x5f,0x37,0x35,0x39,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x35,0x39,0x2e,0x77,0x20,0x3d, - 0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x5f,0x66,0x72,0x61, - 0x67,0x6d,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20, - 0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75, - 0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, + 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x20,0x3d,0x20,0x28,0x28, + 0x69,0x6e,0x2e,0x76,0x5f,0x70,0x6f,0x73,0x48,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x28,0x31,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20, + 0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x2e,0x30,0x2c,0x20,0x2d,0x31, + 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x5f, + 0x75,0x73,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, + 0x20,0x5f,0x37,0x36,0x31,0x20,0x3d,0x20,0x73,0x68,0x61,0x64,0x65,0x72,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x32,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20, + 0x5f,0x37,0x36,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37, + 0x36,0x31,0x2e,0x77,0x20,0x3d,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x61, + 0x72,0x64,0x5f,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x72,0x65,0x73, + 0x75,0x6c,0x74,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, + 0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, }; #if !defined(SOKOL_GFX_INCLUDED) #error "Please include sokol_gfx.h before sprite_shader.h"